-- CURRENT: var swfConfig = { [a lot of stuff...], "video_id": "OHVvVmUNBFc", "sk": "WswKuJzDBsdD6oG3IakCXgC", "t": "OEgsToPDskK3zO44y0QN8Fr5ZSAZwCQp", "plid": "AARGnwWMrmGkbpOxAAAA4AT4IAA"};
-- JSON parameters, also formerly known as "swfConfig",
-- OLD 1: var swfArgs = {hl:'en',BASE_YT_URL:'http://youtube.com/',video_id:'XPJ7d8dq0t8',l:'292',t:'OEgsToPDskLFdOYrrlDm3FQPoQBYaCP1',sk:'0gnr-AE6QZJEZmCMd3lq_AC'};
for url,itag in string.gmatch( fmt_url_map, "url=([^&,]+).-&itag=(%d+)" ) do
for url,itag in string.gmatch( url_map, "url=([^&,]+).-&itag=(%d+)" ) do
-- Apparently formats are listed in quality order,
-- Apparently formats are listed in quality order,
-- so we can afford to simply take the first one
-- so we can afford to simply take the first one
if not fmt or tonumber( itag ) == tonumber( fmt ) then
if not fmt or tonumber( itag ) == tonumber( fmt ) then
...
@@ -101,56 +96,18 @@ function parse()
...
@@ -101,56 +96,18 @@ function parse()
end
end
end
end
end
end
-- Also available on non-HTML5 pages: var swfHTML = (isIE) ? "<object [...]><param name=\"flashvars\" value=\"rv.2.thumbnailUrl=http%3A%2F%2Fi4.ytimg.com%2Fvi%2F3MLp7YNTznE%2Fdefault.jpg&rv.7.length_seconds=384 [...] &video_id=OHVvVmUNBFc [...] &t=OEgsToPDskK3zO44y0QN8Fr5ZSAZwCQp [...]
-- There is also another version of the parameters, encoded
elseif string.match( line, "swfHTML" ) and string.match( line, "video_id" ) then
-- differently, as an HTML attribute of an <object> or <embed>
_,_,t = string.find( line, "&t=(.-)&" )
-- tag; but we don't need it now
-- Also available in HTML5 pages: videoPlayer.setAvailableFormat("http://v6.lscache4.c.youtube.com/videoplayback?ip=82.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&algorithm=throttle-factor&itag=45&ipbits=8&burst=40&sver=3&expire=1275688800&key=yt1&signature=6ED860441298D1157FF3013A5D72727F25831F09.4C196BEA9F8F9B83CE678D79AD918B83D5E98B46&factor=1.25&id=7117715cf57d18d4", "video/webm; codecs="vp8.0, vorbis"", "hd720");
elseif string.match( line, "videoPlayer%.setAvailableFormat" ) then