Page 1 of 4
vlc 1.1.11 youtube crash
Posted: 30 Jul 2011 15:19
by angelique
hello
sorry for my poor english but I'm Frenchy
So , I've just DL le last zip package of vlc 1.1.11
http://sourceforge.net/projects/vlc/fil ... p/download
the Hash md5 is ok : vlc-1.1.11-win32.zip 9dc2647f5694f3fb331dc1bccd921cf7 8dc06b0b0b535548a8b111e6a26554ba37a9e5d7 b743de3b C:\Documents and Settings\user\Mes documents\logs_rat\vlc-1.1.11-win32.zip 30/07/2011 12:31:19 30/07/2011 12:30:25 35 617 367 zip AC
OS : XP Pro SP2
The problem is when I want to stream for exemple any youtube videos (
http://www.youtube.com/watch?v=6_I70KACh4o) , VLC shutdown (crash) but style running in pocessXP , I open again VLC and appear this :
So I saied yes to send it
Any answer about this crash ??
many Thanx
Re: vlc 1.1.11 youtube crash
Posted: 30 Jul 2011 17:31
by VLC_help
Re: vlc 1.1.11 youtube crash
Posted: 31 Jul 2011 09:49
by angelique
OK , THX for the answer \o_
Re: vlc 1.1.11 youtube crash
Posted: 31 Jul 2011 16:09
by colin
im on a Mac where do i put this patch in the code?
Re: vlc 1.1.11 youtube crash
Posted: 31 Jul 2011 17:11
by VLC_help
You can edit the lua/playlist/youtube.lua file with text editor.
Re: vlc 1.1.11 youtube crash
Posted: 31 Jul 2011 20:06
by Casketizer
Re: vlc 1.1.11 youtube crash
Posted: 31 Jul 2011 20:47
by colin
i know but arent i supposed to put that piece of code in a specific place of the youtube lua file?
Re: vlc 1.1.11 youtube crash
Posted: 31 Jul 2011 22:35
by Casketizer
It's easier to copy the entire youtube.lua from here:
http://git.videolan.org/gitweb.cgi?p=vl ... 9cdf8b5625
Re: vlc 1.1.11 youtube crash
Posted: 01 Aug 2011 21:46
by freemarket
Thank you -- Thank you -- Thank you!
That patch worked! I can now play youtube by pasting in the video URL.
I use VLC mainly to watch youtube and two days ago, it stopped working.
When I paste the url into VLC, VLC would crash. I then went to this forum
and found this fix. Thanks again!
Re: vlc 1.1.11 youtube crash
Posted: 02 Aug 2011 18:58
by Tux89
Hi, I have the same issue and I fix it with this patch. I have also a OpenSuSe 11.4 computer but I can't locate the right folder...
I've tried to put the patch into /usr/share/vlc/lua/playlist and /home/username/.config/vlc/lua/playlist, but doesn't work. My original path was:
/usr/share/vlc/lua
/home/username/.config/vlc/
and I had to created the /lua/playlist folders. which folder should I put this file?
oh, and sorry for my bad english!
Re: vlc 1.1.11 youtube crash
Posted: 02 Aug 2011 19:06
by Casketizer
it must be something like
/usr/share/vlc/share/lua/playlist/youtube.lua
i think.
i use it on winblows.
if u cant find it,
u can do in xterm
#updatedb
#locate youtube.lua
edit: u may need to use root or sudo to run updatedb.
Re: vlc 1.1.11 youtube crash
Posted: 02 Aug 2011 21:03
by Tux89
ok, seems work on /home/username/.local/share/vlc/lua/playlist/ but only for my user! I have copied that script for my 3 users and works... I have to make .../lua/playlist directories, too.
Re: vlc 1.1.11 youtube crash
Posted: 03 Aug 2011 05:22
by heehoo
I am completely clueless as to how this patch works. I wouldn't know where to put anything or what to enter or what not.
Re: vlc 1.1.11 youtube crash
Posted: 03 Aug 2011 07:37
by freemarket
The patch is easy to install.
1) Go to the link provided by Casketizer.
2) Copy that text file.
3) Launch a text editor and navigate to your vlc directory.
4) Look around and find the playlist folder, then open the file youtube.lua
5) Delete that file, paste in the file that you copied earlier, and save it.
6) You are done!
Re: vlc 1.1.11 youtube crash
Posted: 03 Aug 2011 07:41
by freemarket
To be more precise, 5 should read
5) Delete the contents of that file, paste in the text that you copied earlier, and save that file.
Re: vlc 1.1.11 youtube crash
Posted: 03 Aug 2011 08:41
by heehoo
Thanks, I did what you said, and while I don't get the error message anymore, the link still doesn't play. But I appreciate it!
Re: vlc 1.1.11 youtube crash
Posted: 03 Aug 2011 09:15
by freemarket
Make sure that you copied the text exactly. Make sure
that all the indents are correct and there is no blank
line at the beginning and, make sure that there is
and EOF after the last "end". When you save the file,
the curser should be at the begining of the line following
the last "end".
Re: vlc 1.1.11 youtube crash
Posted: 03 Aug 2011 23:51
by Tux89
blocked again. The time to go to the bathroom and come back and no longer works ...
Re: vlc 1.1.11 youtube crash
Posted: 04 Aug 2011 07:07
by Casketizer
yep. broken again. this time there is not even an error in the message log :O
Re: vlc 1.1.11 youtube crash
Posted: 04 Aug 2011 08:03
by Casketizer
well there is if you increase debug level. Almost all unofficial youtube apps are not working since last night.
lua warning: Error while running script C:\Program Files\VideoLAN\VLC\lua\playlist\youtube.lua, function parse(): ...\Program Files\VideoLAN\VLC\lua\playlist\youtube.lua:92: bad argument #1 to 'gsub' (string expected, got nil)
Re: vlc 1.1.11 youtube crash
Posted: 04 Aug 2011 09:03
by vilapupu
I got this error as well. It's a problem with all of my windows computers. they just crash and closes.
I think that YouTube is not liking 3rd parties players and just want to make a profit out of it. YouTube is just like that nowadays.. it's just a money making machine for Google /shot /stops ranting before a mod bans me or something.
I really hope that this problem gets fixed on the next update. ^w^
Re: vlc 1.1.11 youtube crash
Posted: 04 Aug 2011 09:12
by Casketizer
I already have found one part of the fix. yt changed fmt_url_map to url_encoded_fmt_stream_map. If I adapt youtube.lua all metadata except the (most important one) stream url is correct. Still investigating.
Re: vlc 1.1.11 youtube crash
Posted: 04 Aug 2011 21:42
by Casketizer
I fixed youtube.lua. this is my own ugly hack. i never touched lua script before but it works
Code: Select all
--[[
$Id$
Copyright © 2007-2009 the VideoLAN team
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
--]]
-- Helper function to get a parameter's value in a URL
function get_url_param( url, name )
local _, _, res = string.find( url, "[&?]"..name.."=([^&]*)" )
return res
end
function get_arturl( path, video_id )
if string.match( vlc.path, "iurl=" ) then
return vlc.strings( get_url_param( vlc.path, "iurl" ) )
end
if not arturl then
return "http://img.youtube.com/vi/"..video_id.."/default.jpg"
end
end
-- Probe function.
function probe()
if vlc.access ~= "http" and vlc.access ~= "https" then
return false
end
youtube_site = string.match( string.sub( vlc.path, 1, 8 ), "youtube" )
if not youtube_site then
-- FIXME we should be using a builtin list of known youtube websites
-- like "fr.youtube.com", "uk.youtube.com" etc..
youtube_site = string.find( vlc.path, ".youtube.com" )
if youtube_site == nil then
return false
end
end
return ( string.match( vlc.path, "watch%?v=" ) -- the html page
or string.match( vlc.path, "watch_fullscreen%?video_id=" ) -- the fullscreen page
or string.match( vlc.path, "p.swf" ) -- the (old?) player url
or string.match( vlc.path, "jp.swf" ) -- the (new?) player url (as of 24/08/2007)
or string.match( vlc.path, "player2.swf" ) ) -- another player url
end
-- Parse function.
function parse()
if string.match( vlc.path, "watch%?v=" )
then -- This is the HTML page's URL
-- fmt is the format of the video: 18 is HQ (mp4)
fmt = get_url_param( vlc.path, "fmt" )
while true do
-- Try to find the video's title
line = vlc.readline()
if not line then break end
if string.match( line, "<meta name=\"title\"" ) then
_,_,name = string.find( line, "content=\"(.-)\"" )
name = vlc.strings.resolve_xml_special_chars( name )
name = vlc.strings.resolve_xml_special_chars( name )
end
if string.match( line, "<meta name=\"description\"" ) then
-- Don't ask me why they double encode ...
_,_,description = vlc.strings.resolve_xml_special_chars(vlc.strings.resolve_xml_special_chars(string.find( line, "content=\"(.-)\"" )))
end
if string.match( line, "subscribe_to_user=" ) then
_,_,artist = string.find( line, "subscribe_to_user=([^&]*)" )
end
-- CURRENT: var swfConfig = { [a lot of stuff...], "video_id": "OHVvVmUNBFc", "sk": "WswKuJzDBsdD6oG3IakCXgC", "t": "OEgsToPDskK3zO44y0QN8Fr5ZSAZwCQp", "plid": "AARGnwWMrmGkbpOxAAAA4AT4IAA"};
-- OLD 1: var swfArgs = {hl:'en',BASE_YT_URL:'http://youtube.com/',video_id:'XPJ7d8dq0t8',l:'292',t:'OEgsToPDskLFdOYrrlDm3FQPoQBYaCP1',sk:'0gnr-AE6QZJEZmCMd3lq_AC'};
-- OLD 2: var swfArgs = { "BASE_YT_URL": "http://youtube.com", "video_id": "OHVvVmUNBFc", "l": 88, "sk": "WswKuJzDBsdD6oG3IakCXgC", "t": "OEgsToPDskK3zO44y0QN8Fr5ZSAZwCQp", "plid": "AARGnwWMrmGkbpOxAAAA4AT4IAA", "tk": "mEL4E7PqHeaZp5OG19NQThHt9mXJU4PbRTOw6lz9osHi4Hixp7RE1w=="};
-- OLD 3: 'SWF_ARGS': { [a lot of stuff...], "video_id": "OHVvVmUNBFc", "sk": "WswKuJzDBsdD6oG3IakCXgC", "t": "OEgsToPDskK3zO44y0QN8Fr5ZSAZwCQp", "plid": "AARGnwWMrmGkbpOxAAAA4AT4IAA"};
if ( string.match( line, "PLAYER_CONFIG" ) or string.match( line, "swfConfig" ) or string.match( line, "SWF_ARGS" ) or string.match( line, "swfArgs" ) ) and string.match( line, "video_id" ) then
if string.match( line, "BASE_YT_URL" ) then
_,_,base_yt_url = string.find( line, "\"BASE_YT_URL\": \"(.-)\"" )
end
_,_,t = string.find( line, "\"t\": \"(.-)\"" )
-- vlc.msg.err( t )
-- video_id = string.gsub( line, ".*&video_id:'([^']*)'.*", "%1" )
-- new stream map name below
fmt_url_map = string.match( line, "\"url_encoded_fmt_stream_map\": \"(.-)\"" )
-- FIXME: do this properly
fmt_url_map = string.gsub( fmt_url_map, "\\u0026", "&" )
if fmt_url_map then
-- old | based pattern replaced
for itag,url in string.gmatch( fmt_url_map, "(%d+)\,url\=([^,]+)" ) do
-- Apparently formats are listed in quality order,
-- so we can afford to simply take the first one
if not fmt or tonumber( itag ) == tonumber( fmt ) then
-- do unescaping of /
url = string.gsub( url, '\\/','/' )
-- cut off at &quality
cutoff,_= url:find("&quality")
url=url:sub(1,cutoff-1)
-- have to run it through uri decoder
path = vlc.strings.decode_uri(url)
break
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 [...]
elseif string.match( line, "swfHTML" ) and string.match( line, "video_id" ) then
_,_,t = string.find( line, "&t=(.-)&" )
-- 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
url,itag = string.match( line, "videoPlayer%.setAvailableFormat%(\"(.-itag=(%d+).-)\",.+%)" )
if url then
-- For now, WebM formats are listed only in the HTML5
-- section, that is also only when HTML5 is enabled.
-- Format 45 is 720p, and 43 is lower resolution.
if tonumber( itag ) == 45 or ( tonumber( itag ) == 43 and not webm_path ) then
webm_path = url
end
-- Grab something if fmt_url_map failed
if not path and ( not fmt or tonumber( itag ) == tonumber( fmt ) ) then
path = url
end
end
end
end
if not video_id then
video_id = get_url_param( vlc.path, "v" )
end
arturl = get_arturl( vlc.path, video_id )
if not fmt then
-- Prefer WebM formats if this is an &html5=True URL
html5 = get_url_param( vlc.path, "html5" )
if html5 == "True" and webm_path then
path = webm_path
end
end
if not path then
if not base_yt_url then
base_yt_url = "http://youtube.com/"
end
if fmt then
format = "&fmt=" .. fmt
else
format = ""
end
if t then
path = base_yt_url .. "get_video?video_id="..video_id.."&t="..t..format
else
-- This shouldn't happen ... but keep it as a backup.
path = "http://www.youtube.com/v/"..video_id
end
end
return { { path = path; name = name; description = description; artist = artist; arturl = arturl } }
else -- This is the flash player's URL
if string.match( vlc.path, "title=" ) then
name = vlc.strings.decode_uri(get_url_param( vlc.path, "title" ))
end
video_id = get_url_param( vlc.path, "video_id" )
arturl = get_arturl( vlc.path, video_id )
fmt = get_url_param( vlc.path, "fmt" )
if fmt then
format = "&fmt=" .. fmt
else
format = ""
end
if not string.match( vlc.path, "t=" ) then
-- This sucks, we're missing "t" which is now mandatory. Let's
-- try using another url
return { { path = "http://www.youtube.com/v/"..video_id; name = name; arturl = arturl } }
end
return { { path = "http://www.youtube.com/get_video.php?video_id="..video_id.."&t="..get_url_param( vlc.path, "t" )..format; name = name; arturl = arturl } }
end
end
of course everyone is free to use my code as they please.
edit: i just cleaned it up, functionality unchanged.
Re: vlc 1.1.11 youtube crash
Posted: 04 Aug 2011 21:53
by freemarket
lua warning: Error while running script C:\Program Files\VideoLAN\VLC\lua\playlist\youtube.lua, function parse(): ...\Program Files\VideoLAN\VLC\lua\playlist\youtube.lua:92: bad argument #1 to 'gsub' (string expected, got nil)
I am now getting this same error and can no longer play any youtube files.
What a bummer.
Re: vlc 1.1.11 youtube crash
Posted: 04 Aug 2011 21:59
by Casketizer
check post above yours. worked all afternoon to fix it. and at lunch i knew nothing of lua script