vlc 1.1.11 youtube crash

Microsoft Windows specific usage questions
Forum rules
Please post only Windows specific questions in this forum category. If you don't know where to post, please read the different forums' rules. Thanks.
vilapupu
Blank Cone
Blank Cone
Posts: 28
Joined: 01 Jun 2009 04:15
VLC version: 3.0.12
Operating System: Win 10 Pro x64
Location: MD, USA

Re: vlc 1.1.11 youtube crash

Postby vilapupu » 04 Aug 2011 09:03

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^

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 04 Aug 2011 09:12

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.

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 04 Aug 2011 21:42

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.
Last edited by Casketizer on 04 Aug 2011 22:23, edited 3 times in total.

freemarket
Blank Cone
Blank Cone
Posts: 11
Joined: 17 Jul 2011 06:42

Re: vlc 1.1.11 youtube crash

Postby freemarket » 04 Aug 2011 21:53

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.

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 04 Aug 2011 21:59

check post above yours. worked all afternoon to fix it. and at lunch i knew nothing of lua script :)

freemarket
Blank Cone
Blank Cone
Posts: 11
Joined: 17 Jul 2011 06:42

Re: vlc 1.1.11 youtube crash

Postby freemarket » 04 Aug 2011 22:07

Cask -- I just tried your fix and it worked!

You are da man!

The Youtube management are jerks.

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 04 Aug 2011 22:44

lol the last incarnation of this post was a freudian slip lol

freemarket: i dont think they did the changes to block vlc. it looks more like normal api changes.

freemarket
Blank Cone
Blank Cone
Posts: 11
Joined: 17 Jul 2011 06:42

Re: vlc 1.1.11 youtube crash

Postby freemarket » 05 Aug 2011 00:31

On a related issue, my FreeYoutubeDownloader also stopped working.
So, I downloaded the latest version v3.3.89.0 and that fixed it.

vilapupu
Blank Cone
Blank Cone
Posts: 28
Joined: 01 Jun 2009 04:15
VLC version: 3.0.12
Operating System: Win 10 Pro x64
Location: MD, USA

Re: vlc 1.1.11 youtube crash

Postby vilapupu » 06 Aug 2011 02:14

Thanks for the youtube.lua fix. ^w^
I tested it with windows vista Home premium x86 and Windows 7 Home Premium x64 and it works perfectly. ^^

japnukeplant
New Cone
New Cone
Posts: 8
Joined: 06 Aug 2011 03:14

Re: vlc 1.1.11 youtube crash

Postby japnukeplant » 06 Aug 2011 03:18

Hi Casketizer,
How do I download the code in its original format (txt format without all the indents). When I copy and paste the code in the lined format, it does not work. I had a similar problem with DailyMotion when I was copying and pasting the lua. The fix worked when I downloaded the lua as a txt file and pasted over the original

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 06 Aug 2011 12:01

It should work with simple cut and paste. It does for me. The indentations are there for a reason.
Maybe whatever text editor you use breaks the formatting. I recommend ultraedit on windows. Notepad will do too, though. Wordwrap might cause breakage if saved.

For your convenience here is the file i use.
http://www.mediafire.com/?xtuntt7ijts3692

Edit:This code was only tested on vlc 1.1.10 and 1.1.11!

esco
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2011 16:30

Re: vlc 1.1.11 youtube crash

Postby esco » 06 Aug 2011 16:32

how to you change the youtube.lua file to automatically play youtube clips to launch at 480p rather than the highest quality format for the video file. iv tried but had no luck. thank.

also i find that downloading the file above and replacing it with the file on your hard drive works, rather than cutting and pasting the text, cut and paste the whole file.

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 06 Aug 2011 16:39

this part of the post is superseded by next post :)
I have tested and made sure that a simple copy and paste of the code will work. It worked for others.
Last edited by Casketizer on 06 Aug 2011 17:12, edited 1 time in total.

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 06 Aug 2011 17:07

Actually after looking at the script again, you don't need to change a thing. It's already built in.
Just add &fmt=xx to the url where xx is the youtube format code. 18 , 43, 45 are possible numbers but there are others. I think 43 corresponds to 480p.
Google is ur friend.
I.E.
entering

Code: Select all

http://www.youtube.com/watch?v=MwugfiExwsM&fmt=43
in vlc
should give u a 480p video

Keep in mind that not all videos are available in all formats.

japnukeplant
New Cone
New Cone
Posts: 8
Joined: 06 Aug 2011 03:14

Re: vlc 1.1.11 youtube crash

Postby japnukeplant » 06 Aug 2011 18:52

Thanks casketizer

esco
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2011 16:30

Re: vlc 1.1.11 youtube crash

Postby esco » 06 Aug 2011 19:12

Thanks casketizer
i knew of the above method you gave but i would have preferred it to automatically play to say 480p instead of playing at the highest quality vlc player does. i found that the numbers should end in 18, 22, 34 or 35, for some reason different numbers work for different videos. i guess this problem will be fixed in the time ahead so that a default play quality can be set.

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 06 Aug 2011 19:19

I just did some tests.
You actually can do this:
In Line 62
replace

Code: Select all

fmt = get_url_param( vlc.path, "fmt" )
with

Code: Select all

fmt=43
And it will limit it to 480p and fall back to lower res if 480p is unavailable.

I only tested a few videos, so it (the fallback) is not thoroughly tested.

esco
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2011 16:30

Re: vlc 1.1.11 youtube crash

Postby esco » 06 Aug 2011 20:26

ye i tried the above but like you said it will not wrk for videos that do not have 48-p videos, so what im looking for is the max video quality to be 480p and no higher. and like you said i do have low bandwidth, but also my CPU goes to 99% when playing videos above 480p. but if i play any video in a browser of any quality in full screen it'll send my CPU through the sky, hence why I want to use vlc player to play my youtube clips through it.

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 06 Aug 2011 20:30

Actually it does work. It falls back to 240p or 360p for me. but I did not try many videos.

esco
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2011 16:30

Re: vlc 1.1.11 youtube crash

Postby esco » 06 Aug 2011 20:37

i change the line but the video doesnt work, cud u copy and PM the script pls?

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 06 Aug 2011 20:45

sent u a pm with the link.
you should use a better text editor if you cant even make a simple line edit :)

esco
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2011 16:30

Re: vlc 1.1.11 youtube crash

Postby esco » 06 Aug 2011 21:01

im using notepad, and the script works for a few videos iv tried but not some, as an error comes up in windows.

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 06 Aug 2011 21:16

Most likely they are restricted videos. Those are always problematic in unofficial youtube apps.

esco
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2011 16:30

Re: vlc 1.1.11 youtube crash

Postby esco » 06 Aug 2011 21:19

ye iv tried a few videos the majority seem to play fine, but some do not, but all the videos i tried to play with the scipt you posted in this post all work.

Casketizer
Blank Cone
Blank Cone
Posts: 31
Joined: 05 May 2004 04:10

Re: vlc 1.1.11 youtube crash

Postby Casketizer » 06 Aug 2011 21:22

Most likely for those there is no lower fallback available. Restricted content is always problematic.


Return to “VLC media player for Windows Troubleshooting”

Who is online

Users browsing this forum: No registered users and 26 guests