VLC - YouTube videos won't play anymore
I assume you entered the URL correctly (no https but http, and only the v=... part, like http://www.youtube.com/watch?v=-wxawmjnRWY
)?
Open the Extras menu and click on Messages. Now click play again and see what message's there.
My guess is it's
lua error: Couldn't extract youtube video URL, please check for updates to this script
VLC parses YouTube's HTML source code to look for the video, but sometimes, YouTube changes its way it outputs the HTML, so VLC is unable to find the video URL.
Possible workarounds
- Go to https://www.youtube.com/html5 and enable html5 there to play the video in your browser without flash
- Install
minitube
and try to play the video there - Wait for an update of VLC (or update the lua script yourself - not so easy, see Updating the VLC YouTube parser)
- Install the package
youtube-dl
and download the video to your harddisk. It's a command line utility though
Updating the VLC YouTube parser
Update just the Lua script for YouTube parsing to the latest version from VLC:
Open the Terminal application and enter these commands:
Make sure curl
is installed, we need this to download the new file
sudo apt-get install curl
Get rid of the old, non-working scripts
sudo rm /usr/lib/vlc/lua/playlist/youtube.*
Download the current ones (use the whole command line, yes, it's quite long):
sudo curl "http://git.videolan.org/?p=vlc.git;a=blob_plain;f=share/lua/playlist/youtube.lua;hb=HEAD" -o /usr/lib/vlc/lua/playlist/youtube.lua
See if it works.
You can run the latest Lua script for extracting YouTube streams by downloading the appropriate file into your home directory. There's no need to delete or modify system-level files. This works just fine:
mkdir -p ~/.local/share/vlc/lua/playlist/
curl 'https://code.videolan.org/videolan/vlc/-/raw/master/share/lua/playlist/youtube.lua' -o ~/.local/share/vlc/lua/playlist/youtube.lua
or with wget:
mkdir -p ~/.local/share/vlc/lua/playlist/
wget -q -O - 'https://code.videolan.org/videolan/vlc/-/raw/master/share/lua/playlist/youtube.lua' > ~/.local/share/vlc/lua/playlist/youtube.lua
VLC will use local scripts instead of the system level Lua file here:
/usr/lib/x86_64-linux-gnu/vlc/lua/playlist/youtube.luac
By using a local file in your home directory, you don't have to worry about the file being overwritten when the VLC package is upgraded with apt upgrade
or similar.
Relevant links:
-
youtube parser not updating
-
Is there any video player that plays Youtube playlists?
-
https://code.videolan.org/videolan/vlc/-/blob/master/share/lua/playlist/youtube.lua
-
https://code.videolan.org/videolan/vlc/-/blob/a51ba24aa6b9d5e8864cd6420357091fbd663ed1/share/lua/playlist/youtube.lua
-
https://wiki.videolan.org/Documentation:Building_Lua_Playlist_Scripts/