]> git.sesse.net Git - vlc/commitdiff
vimeo playback now hides user agent automatically
authorStephen Parry <sgparry@mainscreen.com>
Wed, 6 Mar 2013 19:36:07 +0000 (19:36 +0000)
committerJean-Baptiste Kempf <jb@videolan.org>
Sun, 10 Mar 2013 16:57:26 +0000 (17:57 +0100)
Vimeo injects garbage into pages fetched by any user agent recognisable as
being VLC. Amended parse routine to check the current user agent; if the user
agent is set to VLC then parse returns a replacement playlist entry with the
same url but with an option setting the user agent to something that vimeo will
not trash.
The main playlist parsing loop then re-opens the stream with the correct agent
and calls vimeo.lua a second time; the stream is then parsed as before to get
the actual shortlived video url.

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
share/lua/playlist/vimeo.lua

index 1200e445b5cdce22143e09d7426eb3b02718944b..3134c19b2df99663aeff2c02c057419ce8794c10 100644 (file)
@@ -42,6 +42,13 @@ end
 
 -- Parse function.
 function parse()
+    agent = vlc.var.inherit(nil,"http-user-agent")
+
+    if string.match( string.lower(agent), ".*vlc.*" ) then
+        vlc.msg.dbg("Wrong agent, adapting...")
+        return { { path = vlc.access .. "://" .. vlc.path; options = {":http-user-agent=Mozilla/5.0" } } }
+    end
+
     _,_,id = string.find( vlc.path, "vimeo.com/([0-9]*)")
     prefres = get_prefres()
     ishd = false