mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-11-02 21:52:05 +00:00 
			
		
		
		
	Fix escaping for video filenames
This commit is contained in:
		@@ -4002,7 +4002,8 @@ get "/videoplayback" do |env|
 | 
			
		||||
    env.response.status_code = response.status_code
 | 
			
		||||
 | 
			
		||||
    if title = env.params.query["title"]?
 | 
			
		||||
      env.response.headers["Content-Disposition"] = "attachment; filename=\"#{title}\""
 | 
			
		||||
      # https://blog.fastmail.com/2011/06/24/download-non-english-filenames/
 | 
			
		||||
      env.response.headers["Content-Disposition"] = "attachment; filename=\"#{URI.escape(title)}\"; filename*=UTF-8''#{URI.escape(title)}"
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    response.headers.each do |key, value|
 | 
			
		||||
 
 | 
			
		||||
@@ -59,17 +59,17 @@
 | 
			
		||||
                    <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 value='{"id":"<%= video.id %>","itag":"<%= option["itag"] %>","title":"<%= HTML.escape(video.title) %>-<%= video.id %>.mp4"}'>
 | 
			
		||||
                        <option value='{"id":"<%= video.id %>","itag":"<%= option["itag"] %>","title":"<%= URI.escape(video.title) %>-<%= video.id %>.mp4"}'>
 | 
			
		||||
                            <%= option["quality_label"] %> - <%= option["type"].split(";")[0] %> @ <%= option["fps"] %>fps - video only
 | 
			
		||||
                        </option>
 | 
			
		||||
                    <% end %>
 | 
			
		||||
                    <% audio_streams.each do |option| %>
 | 
			
		||||
                        <option value='{"id":"<%= video.id %>","itag":"<%= option["itag"] %>","title":"<%= HTML.escape(video.title) %>-<%= video.id %>.mp4"}'>
 | 
			
		||||
                        <option value='{"id":"<%= video.id %>","itag":"<%= option["itag"] %>","title":"<%= URI.escape(video.title) %>-<%= video.id %>.mp4"}'>
 | 
			
		||||
                            <%= option["type"].split(";")[0] %> @ <%= option["bitrate"] %>k - audio only
 | 
			
		||||
                        </option>
 | 
			
		||||
                    <% end %>
 | 
			
		||||
                    <% fmt_stream.each do |option| %>
 | 
			
		||||
                        <option value='{"id":"<%= video.id %>","itag":"<%= option["itag"] %>","title":"<%= HTML.escape(video.title) %>-<%= video.id %>.mp4"}'>
 | 
			
		||||
                        <option value='{"id":"<%= video.id %>","itag":"<%= option["itag"] %>","title":"<%= URI.escape(video.title) %>-<%= video.id %>.mp4"}'>
 | 
			
		||||
                            <%= itag_to_metadata?(option["itag"]).try &.["height"]? || "~240" %>p - <%= option["type"].split(";")[0] %>
 | 
			
		||||
                        </option>
 | 
			
		||||
                    <% end %>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user