vimeo.lua
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:3k
源码类别:

midi

开发平台:

Unix_Linux

  1. --[[
  2.  $Id$
  3.  Copyright © 2009 the VideoLAN team
  4.  Authors: Konstantin Pavlov (thresh@videolan.org)
  5.  This program is free software; you can redistribute it and/or modify
  6.  it under the terms of the GNU General Public License as published by
  7.  the Free Software Foundation; either version 2 of the License, or
  8.  (at your option) any later version.
  9.  This program is distributed in the hope that it will be useful,
  10.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  GNU General Public License for more details.
  13.  You should have received a copy of the GNU General Public License
  14.  along with this program; if not, write to the Free Software
  15.  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  16. --]]
  17. -- Probe function.
  18. function probe()
  19.     return vlc.access == "http"
  20.         and string.match( vlc.path, "vimeo.com/%d+" )
  21.             or string.match( vlc.path, "vimeo.com/moogaloop/load" )
  22. end
  23. -- Parse function.
  24. function parse()
  25.     p = {}
  26.     if string.match ( vlc.path, "vimeo.com/%d+" ) then
  27.         print (" vlc path is : " .. vlc.path )
  28.         _,_,id = string.find( vlc.path, "vimeo.com/(.*)")
  29.         print (" id is : " .. id )
  30.         return { { path = "http://vimeo.com/moogaloop/load/clip:" .. id .. "/local/", name = "Vimeo playlist" } }
  31.     end
  32.     if string.match ( vlc.path, "vimeo.com/moogaloop" ) then
  33.         while true do
  34.             -- Try to find the video's title
  35.             line = vlc.readline()
  36.             if not line then break end
  37.             if string.match( line, "<caption>(.*)</caption>" ) then
  38.                 _,_,name = string.find (line, "<caption>(.*)</caption>" )
  39.             end
  40.             -- Try to find id of the video
  41.             _,_,id = string.find (vlc.path, "vimeo.com/moogaloop/load/clip:(.*)/local/")
  42.             -- Try to find image for thumbnail
  43.             if string.match( line, "<thumbnail>(.*)</thumbnail>" ) then
  44.                 _,_,arturl = string.find (line, "<thumbnail>(.*)</thumbnail>" )
  45.             end
  46.             -- Try to find request signature (needed to construct video url)
  47.             if string.match( line, "<request_signature>(.*)</request_signature>" ) then
  48.                 _,_,rsig = string.find (line, "<request_signature>(.*)</request_signature>" )
  49.             end
  50.             -- Try to find request signature expiration time (needed to construct video url)
  51.             if string.match( line, "<request_signature_expires>(.*)</request_signature_expires>" ) then
  52.                 _,_,rsigtime = string.find (line, "<request_signature_expires>(.*)</request_signature_expires>" )
  53.             end
  54.             -- Try to find whether video is HD actually
  55.             if string.match( line, "<isHD>1</isHD>" ) then
  56.                 ishd = true
  57.             end
  58.         end
  59.         table.insert( p, { path = "http://vimeo.com/moogaloop/play/clip:"..id.."/"..rsig.."/"..rsigtime; name = name; arturl = arturl } )
  60.         if ishd == true then
  61.             table.insert( p, { path = "http://vimeo.com/moogaloop/play/clip:"..id.."/"..rsig.."/"..rsigtime.."/?q=hd"; name = name.." (HD)"; arturl = arturl } )
  62.         end
  63.     end
  64.     return p
  65. end