summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOmar Roth <omarroth@hotmail.com>2019-03-08 14:42:37 -0600
committerOmar Roth <omarroth@hotmail.com>2019-03-08 14:43:31 -0600
commitc4d77bc18a726941823dfcc6a0b8e2159d73517e (patch)
treedecf526ae862a3f5473cac17ed38779700d4d306 /src
parentc69fbb72d3bb7d18bf6f8acb48b26b54b8598710 (diff)
downloadinvidious-c4d77bc18a726941823dfcc6a0b8e2159d73517e.tar.gz
invidious-c4d77bc18a726941823dfcc6a0b8e2159d73517e.tar.bz2
invidious-c4d77bc18a726941823dfcc6a0b8e2159d73517e.zip
Use host_url for generating thumbnails
Diffstat (limited to 'src')
-rw-r--r--src/invidious.cr32
-rw-r--r--src/invidious/videos.cr32
2 files changed, 33 insertions, 31 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index f5c97c13..2d1d88ce 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -2826,7 +2826,7 @@ get "/api/v1/videos/:id" do |env|
json.field "title", video.title
json.field "videoId", video.id
json.field "videoThumbnails" do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
video.description, description = html_to_content(video.description)
@@ -2989,7 +2989,7 @@ get "/api/v1/videos/:id" do |env|
json.field "videoId", rv["id"]
json.field "title", rv["title"]
json.field "videoThumbnails" do
- generate_thumbnails(json, rv["id"])
+ generate_thumbnails(json, rv["id"], config, Kemal.config)
end
json.field "author", rv["author"]
json.field "lengthSeconds", rv["length_seconds"].to_i
@@ -3031,7 +3031,7 @@ get "/api/v1/trending" do |env|
json.field "title", video.title
json.field "videoId", video.id
json.field "videoThumbnails" do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
json.field "lengthSeconds", video.length_seconds
@@ -3072,7 +3072,7 @@ get "/api/v1/popular" do |env|
json.field "title", video.title
json.field "videoId", video.id
json.field "videoThumbnails" do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
json.field "lengthSeconds", video.length_seconds
@@ -3111,7 +3111,7 @@ get "/api/v1/top" do |env|
json.field "title", video.title
json.field "videoId", video.id
json.field "videoThumbnails" do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
json.field "lengthSeconds", video.info["length_seconds"].to_i
@@ -3294,7 +3294,7 @@ get "/api/v1/channels/:ucid" do |env|
end
json.field "videoThumbnails" do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
json.field "description", video.description
@@ -3392,7 +3392,7 @@ end
end
json.field "videoThumbnails" do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
json.field "description", video.description
@@ -3444,7 +3444,7 @@ end
json.field "authorUrl", "/channel/#{ucid}"
json.field "videoThumbnails" do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
json.field "description", video.description
@@ -3515,7 +3515,7 @@ end
json.field "lengthSeconds", video.length_seconds
json.field "videoThumbnails" do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
end
end
@@ -3568,7 +3568,7 @@ get "/api/v1/channels/search/:ucid" do |env|
json.field "authorUrl", "/channel/#{item.ucid}"
json.field "videoThumbnails" do
- generate_thumbnails(json, item.id)
+ generate_thumbnails(json, item.id, config, Kemal.config)
end
json.field "description", item.description
@@ -3600,7 +3600,7 @@ get "/api/v1/channels/search/:ucid" do |env|
json.field "lengthSeconds", video.length_seconds
json.field "videoThumbnails" do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
end
end
@@ -3697,7 +3697,7 @@ get "/api/v1/search" do |env|
json.field "authorUrl", "/channel/#{item.ucid}"
json.field "videoThumbnails" do
- generate_thumbnails(json, item.id)
+ generate_thumbnails(json, item.id, config, Kemal.config)
end
json.field "description", item.description
@@ -3729,7 +3729,7 @@ get "/api/v1/search" do |env|
json.field "lengthSeconds", video.length_seconds
json.field "videoThumbnails" do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
end
end
@@ -3845,7 +3845,7 @@ get "/api/v1/playlists/:plid" do |env|
json.field "authorUrl", "/channel/#{video.ucid}"
json.field "videoThumbnails" do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
json.field "index", video.index
@@ -3921,7 +3921,7 @@ get "/api/v1/mixes/:rdid" do |env|
json.field "videoThumbnails" do
json.array do
- generate_thumbnails(json, video.id)
+ generate_thumbnails(json, video.id, config, Kemal.config)
end
end
@@ -4332,7 +4332,7 @@ get "/vi/:id/:name" do |env|
client = make_client(URI.parse(host))
if name == "maxres.jpg"
- VIDEO_THUMBNAILS.each do |thumb|
+ build_thumbnails(id, config, Kemal.config).each do |thumb|
if client.head("/vi/#{id}/#{thumb[:url]}.jpg").status_code == 200
name = thumb[:url] + ".jpg"
break
diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr
index 1de591b3..cd24afdc 100644
--- a/src/invidious/videos.cr
+++ b/src/invidious/videos.cr
@@ -136,18 +136,6 @@ BYPASS_REGIONS = {
"TR",
}
-VIDEO_THUMBNAILS = {
- {name: "maxres", host: "#{CONFIG.domain}", url: "maxres", height: 720, width: 1280},
- {name: "maxresdefault", host: "i.ytimg.com", url: "maxresdefault", height: 720, width: 1280},
- {name: "sddefault", host: "i.ytimg.com", url: "sddefault", height: 480, width: 640},
- {name: "high", host: "i.ytimg.com", url: "hqdefault", height: 360, width: 480},
- {name: "medium", host: "i.ytimg.com", url: "mqdefault", height: 180, width: 320},
- {name: "default", host: "i.ytimg.com", url: "default", height: 90, width: 120},
- {name: "start", host: "i.ytimg.com", url: "1", height: 90, width: 120},
- {name: "middle", host: "i.ytimg.com", url: "2", height: 90, width: 120},
- {name: "end", host: "i.ytimg.com", url: "3", height: 90, width: 120},
-}
-
# See https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/youtube.py#L380-#L476
VIDEO_FORMATS = {
"5" => {"ext" => "flv", "width" => 400, "height" => 240, "acodec" => "mp3", "abr" => 64, "vcodec" => "h263"},
@@ -826,12 +814,26 @@ def process_video_params(query, preferences)
return params
end
-def generate_thumbnails(json, id)
+def build_thumbnails(id, config, kemal_config)
+ return {
+ {name: "maxres", host: "#{make_host_url(config, kemal_config)}", url: "maxres", height: 720, width: 1280},
+ {name: "maxresdefault", host: "https://i.ytimg.com", url: "maxresdefault", height: 720, width: 1280},
+ {name: "sddefault", host: "https://i.ytimg.com", url: "sddefault", height: 480, width: 640},
+ {name: "high", host: "https://i.ytimg.com", url: "hqdefault", height: 360, width: 480},
+ {name: "medium", host: "https://i.ytimg.com", url: "mqdefault", height: 180, width: 320},
+ {name: "default", host: "https://i.ytimg.com", url: "default", height: 90, width: 120},
+ {name: "start", host: "https://i.ytimg.com", url: "1", height: 90, width: 120},
+ {name: "middle", host: "https://i.ytimg.com", url: "2", height: 90, width: 120},
+ {name: "end", host: "https://i.ytimg.com", url: "3", height: 90, width: 120},
+ }
+end
+
+def generate_thumbnails(json, id, config, kemal_config)
json.array do
- VIDEO_THUMBNAILS.each do |thumbnail|
+ build_thumbnails(id, config, kemal_config).each do |thumbnail|
json.object do
json.field "quality", thumbnail[:name]
- json.field "url", "https://#{thumbnail[:host]}/vi/#{id}/#{thumbnail["url"]}.jpg"
+ json.field "url", "#{thumbnail[:host]}/vi/#{id}/#{thumbnail["url"]}.jpg"
json.field "width", thumbnail[:width]
json.field "height", thumbnail[:height]
end