summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/invidious.cr11
-rw-r--r--src/invidious/views/watch.ecr8
2 files changed, 14 insertions, 5 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index b90e9913..a720670a 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -3658,6 +3658,10 @@ get "/latest_version" do |env|
id = env.params.query["id"]?
itag = env.params.query["itag"]?
+ local = env.params.query["local"]?
+ local ||= "false"
+ local = local == "true"
+
if !id || !itag
halt env, status_code: 400
end
@@ -3674,7 +3678,12 @@ get "/latest_version" do |env|
halt env, status_code: 409
end
- env.redirect urls[0]["url"]
+ url = urls[0]["url"]
+ if local
+ url = URI.parse(url).full_path.not_nil!
+ end
+
+ env.redirect url
end
options "/videoplayback" do |env|
diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr
index da45011b..dc58d48d 100644
--- a/src/invidious/views/watch.ecr
+++ b/src/invidious/views/watch.ecr
@@ -59,13 +59,13 @@
<label for="download_widget"><%= translate(locale, "Download as: ") %></label>
<select style="width:100%" name="download_widget" id="download_widget">
<% video_streams.each do |option| %>
- <option data-url="<%= option["url"] %>"><%= option["quality_label"] %> - <%= option["type"].split(";")[0] %> @ <%= option["fps"] %>fps - video only</option>
+ <option data-url="/latest_version?id=<%= video.id %>&itag=<%= option["itag"] %>&local=true"><%= option["quality_label"] %> - <%= option["type"].split(";")[0] %> @ <%= option["fps"] %>fps - video only</option>
<% end %>
<% audio_streams.each do |option| %>
- <option data-url="<%= option["url"] %>"><%= option["type"].split(";")[0] %> @ <%= option["bitrate"] %>k - audio only</option>
+ <option data-url="/latest_version?id=<%= video.id %>&itag=<%= option["itag"] %>&local=true"><%= option["type"].split(";")[0] %> @ <%= option["bitrate"] %>k - audio only</option>
<% end %>
<% fmt_stream.each do |option| %>
- <option data-url="<%= option["url"] %>"><%= itag_to_metadata?(option["itag"]).try &.["height"]? || "~240" %>p - <%= option["type"].split(";")[0] %></option>
+ <option data-url="/latest_version?id=<%= video.id %>&itag=<%= option["itag"] %>&local=true"><%= itag_to_metadata?(option["itag"]).try &.["height"]? || "~240" %>p - <%= option["type"].split(";")[0] %></option>
<% end %>
</select>
</div>
@@ -77,7 +77,7 @@
<button type="button" data-title="<%= video.title.dump_unquoted %>-<%= video.id %>.mp4" onclick="download_video(this)"
class="pure-button pure-button-primary">
- <%= translate(locale, "Download") %>
+ <b><%= translate(locale, "Download") %></b>
</button>
</form>