[vlc-commits] Youtube: improve description parsing
Jean-Baptiste Kempf
git at videolan.org
Wed Feb 18 19:19:21 CET 2015
vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Wed Feb 18 19:17:47 2015 +0100| [f568fd431f42e1fd21bc6f55af93d119861c54bf] | committer: Jean-Baptiste Kempf
Youtube: improve description parsing
Close #13973
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f568fd431f42e1fd21bc6f55af93d119861c54bf
---
share/lua/playlist/youtube.lua | 26 ++++++++++++--------------
1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/share/lua/playlist/youtube.lua b/share/lua/playlist/youtube.lua
index ada99ac..05076e0 100644
--- a/share/lua/playlist/youtube.lua
+++ b/share/lua/playlist/youtube.lua
@@ -235,23 +235,21 @@ function parse()
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 = string.find( line, "content=\"(.-)\"" )
- description = vlc.strings.resolve_xml_special_chars( description )
+
+ if string.match( line, "<p id=\"eow[-]description\" >" ) then
+ _,_,description = string.find( line, "<p id=\"eow[-]description\" >(.-)<[/]p>" )
description = vlc.strings.resolve_xml_special_chars( description )
end
+
+
if string.match( line, "<meta property=\"og:image\"" ) then
_,_,arturl = string.find( line, "content=\"(.-)\"" )
end
- -- This is not available in the video parameters (whereas it
- -- is given by the get_video_info API as the "author" field)
- if not artist then
- artist = string.match( line, "yt%-uix%-sessionlink yt%-user%-name[^>]*>([^<]*)</" )
- if artist then
- artist = vlc.strings.resolve_xml_special_chars( artist )
- end
+
+ if string.match(line, "\"author\":\"(.-)\",") then
+ _,_,artist = string.find(line, "\"author\":\"(.-)\",")
end
+
-- JSON parameters, also formerly known as "swfConfig",
-- "SWF_ARGS", "swfArgs", "PLAYER_CONFIG", "playerConfig" ...
if string.match( line, "ytplayer%.config" ) then
@@ -279,7 +277,7 @@ function parse()
if not path then
-- If this is a live stream, the URL map will be empty
- -- and we get the URL from this field instead
+ -- and we get the URL from this field instead
local hlsvp = string.match( line, "\"hlsvp\": *\"(.-)\"" )
if hlsvp then
hlsvp = string.gsub( hlsvp, "\\/", "/" )
@@ -299,7 +297,7 @@ function parse()
format = "&fmt=" .. fmt
else
format = ""
- end
+ end
-- Without "el=detailpage", /get_video_info fails for many
-- music videos with errors about copyrighted content being
-- "restricted from playback on certain sites"
@@ -339,7 +337,7 @@ function parse()
if not path then
-- If this is a live stream, the URL map will be empty
- -- and we get the URL from this field instead
+ -- and we get the URL from this field instead
local hlsvp = string.match( line, "&hlsvp=([^&]*)" )
if hlsvp then
hlsvp = vlc.strings.decode_uri( hlsvp )
More information about the vlc-commits
mailing list