From b9e7b287d831442b677ac7d45daa2aa210702aa4 Mon Sep 17 00:00:00 2001 From: Arkadiusz Fal Date: Wed, 15 Jun 2022 10:05:52 +0200 Subject: [PATCH] Add upstream fix for Invidious thumbnails On John Ternus request (@llsc12) --- Model/Applications/InvidiousAPI.swift | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Model/Applications/InvidiousAPI.swift b/Model/Applications/InvidiousAPI.swift index 5a5d86fb..d892133b 100644 --- a/Model/Applications/InvidiousAPI.swift +++ b/Model/Applications/InvidiousAPI.swift @@ -439,8 +439,23 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI { } private func extractThumbnails(from details: JSON) -> [Thumbnail] { - details["videoThumbnails"].arrayValue.map { json in - Thumbnail(url: json["url"].url!, quality: .init(rawValue: json["quality"].string!)!) + details["videoThumbnails"].arrayValue.compactMap { json in + guard let url = json["url"].url, + var components = URLComponents(url: url, resolvingAgainstBaseURL: false), + let quality = json["quality"].string + else { + return nil + } + + // some of instances are not configured properly and return http thumbnails links + // http connections are not allowed in the app so we can safely convert it to https + components.scheme = "https" + + guard let thumbnailUrl = components.url else { + return nil + } + + return Thumbnail(url: thumbnailUrl, quality: .init(rawValue: quality)!) } }