definitions.last.updated:2008-08-03 00:45 UTC
definitions.comment:"The following types of webpages are supported: YouTube videos (including profile videos, favorites, playlists, search results, and embedded videos), Google videos (including search results, partially), and IEEE Xplore search results."

[YouTube Video]
url.match:"((?:.+\.)?youtube\.com)/watch\?.+"
download.match:"var swfArgs = \{[^\}]*"video_id"\: "([^"]+)"[^\}]*"t"\: "([^"]+)"[^\}]*\};(?s).*<div id="watch-vid-title" class="dc-title">\s*<div >([^<]*)</div>"
download.url:"<url.match.1>/get_video?video_id=<download.match.1>&t=<download.match.2>"
download.title:"<download.match.3>"
download.filename:"<download.match.3>"
download.fileext:"flv"

[YouTube Playlist]
url.match:"((?:.+\.)?youtube\.com)/view_play_list\?.+"
recurse.match:"<div class="vlcontainer"><div class="v120WideEntry"><div class="v120WrapperOuter"><div class="v120WrapperInner"><a href="(/watch\?[^"]+)""
recurse.url:"<url.match.1><recurse.match.1>"
recurse1.match:"<a [^<>]*href="([^"]+)"[^>]*>Next</a>"
recurse1.url:"<url.match.1><recurse1.match.1>"

[YouTube Profile Videos]
url.match:"((?:.+\.)?youtube\.com)/profile_videos\?.+"
recurse.match:"<div class="vlcontainer"><div class="v120WideEntry"><div class="v120WrapperOuter"><div class="v120WrapperInner"><a href="(/watch\?[^"]+)""
recurse.url:"<url.match.1><recurse.match.1>"
recurse1.match:"<a [^<>]*href="([^"]+)"[^>]*>Next</a>"
recurse1.url:"<url.match.1><recurse1.match.1>"

[YouTube Favorite Videos]
url.match:"((?:.+\.)?youtube\.com)/profile_favorites\?.+"
recurse.match:"<div class="vlcontainer"><div class="v120WideEntry"><div class="v120WrapperOuter"><div class="v120WrapperInner"><a href="(/watch\?[^"]+)""
recurse.url:"<url.match.1><recurse.match.1>"
recurse1.match:"<a [^<>]*href="([^"]+)"[^>]*>Next</a>"
recurse1.url:"<url.match.1><recurse1.match.1>"

[YouTube Search Results]
url.match:"((?:.+\.)?youtube\.com)/results\?.+"
recurse.match:"(?s)<div class="vllongTitle">[^<]*<span [^>]*>[^<]*</span>[^<]*<a href="(/watch\?[^"]+)""
recurse.url:"<url.match.1><recurse.match.1>"
recurse1.match:"<a [^<>]*href="([^"]+)"[^>]*>Next</a>"
recurse1.url:"<url.match.1><recurse1.match.1>"

[YouTube Embedded Video]
url.match:".+"
recurse.match:"<embed [^>]*src="((?:.+\.)?youtube\.com)/v/([^&"]++)"
recurse.url:"<recurse.match.1>/watch?v=<recurse.match.2>"

[Google Video]
url.match:"(.+)(video\.google\.com)/videoplay\?.+"
download.match:"(?s)title\: '([^']+)'.*secureurl%3D([^%]+)%"
download.url:"<url.match.1>vp.<url.match.2>/videodownload?version=0&secureurl=<download.match.2>"
download.title:"<download.match.1>"
download.filename:"<download.match.1>"
download.fileext:"flv"

[Google Video Search Result]
url.match:"(.+)(video\.google\.com)/videoplay\?.+"
recurse.match:"(?s)<a href="([^"]+)">Video in original context</a>"
recurse.url:"<recurse.match.1>"

[Google Video Search Results]
url.match:"(.+)(video\.google\.com)/videosearch\?.+"
recurse.match:"(?s)<div class="embeddable-icon" title="Playable on Google Video"></div>[\s]*</div>[\s]*<div class="rl-metadata">[\s]*<div class="rl-title"[^>]*>[\s]*<a href="/(videoplay\?docid=[^&]+)&"
recurse.url:"<url.match.1><url.match.2>/<recurse.match.1>"
recurse1.match:"<a id="main-pagi-next" href="([^"]+)""
recurse1.url:"<url.match.1><url.match.2><recurse1.match.1>"

[IEEE Xplore Search Results]
url.match:"(.+://ieeexplore\.ieee\.org)(/search/searchresult\.jsp\?)(.*)"
download.match:"(?s)<td [^>]*class="bodyCopyBlackLargeSpaced"[^>]*><strong>([^\n\r\u0085\u2028\u2028]+)</strong><br>[\s]*([^,;<]+)[,;<].*?Full Text:[\s]*<A [^>]*href="([^"]+)""
download.url:"<url.match.1><download.match.3>"
download.title:"<download.match.2> - <download.match.1>"
download.filename:"<download.match.2> - <download.match.1>"
download.fileext:"pdf"
recurse.match:"(?s)<html>.*<span class="lowerNavSelected">[^<]+</span>[\s]*<span class="lowerNavSelected"> \| </span>[\s]*<A HREF="javascript\:changeState\('[^']*page=([^&]+)&[^']*ResultStart=([^&']+)[&'].*</html>"
recurse.url:"<url.match.1><url.match.2>page=<recurse.match.1>&ResultStart=<recurse.match.2>&<url.match.3>"