4 Copyright © 2010 VideoLAN and AUTHORS
6 Authors: Ilkka Ollakka <ileoo at videolan dot org >
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
24 return { title="Apple Trailers" }
27 function find( haystack, needle )
28 local _,_,r = string.find( haystack, needle )
33 fd = vlc.stream( "http://trailers.apple.com/trailers/home/feeds/just_hd.json" )
34 if not fd then return nil end
35 options = {":http-user-agent=QuickTime/7.2 vlc edition",":demux=avformat,ffmpeg",":play-and-pause"}
39 if string.match( line, "title" ) then
40 title = vlc.strings.resolve_xml_special_chars( find( line, "title\":\"(.-)\""))
41 art = find( line, "poster\":\"(.-)\"")
43 url = find( line, "url\":\"(.-)\"")
44 playlist = vlc.stream( "http://trailers.apple.com"..url.."includes/playlists/web.inc" )
46 vlc.msg.info("Didn't get playlist...")
49 node = vlc.sd.add_node( {title=title,arturl=art} )
51 playlistline = playlist:readline()
53 if not playlistline then vlc.msg.info("Empty playlists-file") end
54 while playlistline ~= nil
56 if string.match( playlistline, "class=\".-first" ) then
57 description = find( playlistline, "h%d.->(.-)</h%d")
59 if string.match( playlistline, "class=\"hd\".-\.mov") then
60 for urlline,resolution in string.gmatch(playlistline, "class=\"hd\".-href=\"(.-.mov)\".-(%d+.-p)") do
61 urlline = string.gsub( urlline, "_"..resolution, "_h"..resolution )
62 node:add_subitem( {path = urlline,
63 title=title.." "..description.." ("..resolution..")",
64 options=options, arturl=art })
67 playlistline = playlist:readline()