00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 __title__ ="Vimeo";
00030 __author__="R.D. Vaughan"
00031 __version__="0.23"
00032
00033
00034
00035
00036
00037
00038
00039
00040 __usage_examples__ ='''
00041 > ./vimeo.py -h
00042 Usage: ./vimeo.py -hduvlST [parameters] <search text>
00043 Version: v0.22 Author: R.D.Vaughan
00044
00045 For details on the MythTV Netvision plugin see the wiki page at:
00046 http://www.mythtv.org/wiki/MythNetvision
00047
00048 Options:
00049 -h, --help show this help message and exit
00050 -d, --debug Show debugging info (URLs, raw XML ... etc, info
00051 varies per grabber)
00052 -u, --usage Display examples for executing the script
00053 -v, --version Display grabber name and supported options
00054 -l LANGUAGE, --language=LANGUAGE
00055 Select data that matches the specified language fall
00056 back to English if nothing found (e.g. 'es' Español,
00057 'de' Deutsch ... etc). Not all sites or grabbers
00058 support this option.
00059 -p PAGE NUMBER, --pagenumber=PAGE NUMBER
00060 Display specific page of the search results. Default
00061 is page 1. Page number is ignored with the Tree View
00062 option (-T).
00063 -S, --search Search for videos
00064 -T, --treeview Display a Tree View of a sites videos
00065
00066
00067 (Search for all videos identified with the word "Dragon")
00068 > ./vimeo.py -p 1 -S "Dragon"
00069 <?xml version="1.0" encoding="UTF-8"?>
00070 <rss version="2.0"
00071 xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
00072 xmlns:content="http://purl.org/rss/1.0/modules/content/"
00073 xmlns:cnettv="http://cnettv.com/mrss/"
00074 xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
00075 xmlns:media="http://search.yahoo.com/mrss/"
00076 xmlns:atom="http://www.w3.org/2005/Atom"
00077 xmlns:amp="http://www.adobe.com/amp/1.0"
00078 xmlns:dc="http://purl.org/dc/elements/1.1/">
00079 <channel>
00080 <title>Vimeo</title>
00081 <link>http://vimeo.com</link>
00082 <description>Vimeo is a respectful community of creative people who are passionate about sharing the videos they make.</description>
00083 <numresults>4856</numresults>
00084 <returned>20</returned>
00085 <startindex>20</startindex>
00086 <item>
00087 <title>Typophile Film Festival 5 Opening Titles</title>
00088 <author>Brent Barson</author>
00089 <pubDate>Tue, 01 Sep 2009 12:27:46 GMT</pubDate>
00090 <description>Handcrafted with love by BYU design students and faculty, for the 5th Typophile Film Festival. A visual typographic feast about the five senses, and how they contribute to and enhance our creativity. Everything in the film is realâno CG effects! Shot with a RED One, a Canon EOS 5D Mark II, a Canon EOS 40D, and a Nikon D80. Stop motion created with Dragon Stop Motion. Creative Director & Faculty Mentor: Brent Barson Writing & Storyboarding: Brent Barson, Jessica Blackham, Analisa Estrada, Meg Gallagher, John Jensen, Regan Fred Johnson, Colin âThe Pinâ Pinegar Construction, Paint & Glue: Brent Barson, Wynn Burton, Analisa Estrada, Meg Gallagher, Olivia Juarez Knudsen, Casey Lewis, Reeding Roberts, Deven Stephens, Brian Christensen (Brain Sculpture) Animators: Brent Barson, Wynn Burton, Analisa Estrada, Meg Gallagher, Olivia Juarez Knudsen, Reeding Roberts, Deven Stephens Cinematographer: Wynn Burton Editing: Brent Barson, Wynn Burton, Analisa Estrada, Meg Gallagher, Reeding Roberts Hand Models: Analisa Estrada, Meg Gallagher, Olivia Juarez Knudsen, Deven Stephens, Michelle Stephens Original Music: micah dahl anderson - www.micahdahl.com Special thanks to Joe, Jared, Zara, and the Punchut/Typophile crew for enabling this!</description>
00091 <link>http://vimeo.com/moogaloop.swf?clip_id=6382511&autoplay=1</link>
00092 <media:group>
00093 <media:thumbnail url='http://ats.vimeo.com/238/418/23841853_200.jpg'/>
00094 <media:content url='http://vimeo.com/moogaloop.swf?clip_id=6382511&autoplay=1' duration='221' width='640' height='352' lang=''/>
00095 </media:group>
00096 <rating>3233</rating>
00097 </item>
00098 ...
00099 <item>
00100 <title>"The Dragon's Claw" by Justice of the Unicorns</title>
00101 <author>Robert Bruce</author>
00102 <pubDate>Mon, 20 Apr 2009 08:10:32 GMT</pubDate>
00103 <description>"The Dragon's Claw" The official music video for Justice of the Unicorns from the album "Angels with Uzis". Winner of Best Music Video at the 2009 Animation Block Party. http://justiceoftheunicorns.com Animated in Flash. Composited in Combustion. Get your free Cubeecraft Bunny Toy! http://robbruce.blogspot.com/2009/05/mutant-pmp-bunny-of-your-very-own.html robthebruce.com Please feel free to email me for rate quotes, questions, answers, weather reports, cookie recipes, or just to say hi. rob@robthebruce.com</description>
00104 <link>http://vimeo.com/moogaloop.swf?clip_id=4239300&autoplay=1</link>
00105 <media:group>
00106 <media:thumbnail url='http://ats.vimeo.com/926/443/9264438_200.jpg'/>
00107 <media:content url='http://vimeo.com/moogaloop.swf?clip_id=4239300&autoplay=1' duration='206' width='640' height='368' lang=''/>
00108 </media:group>
00109 <rating>47</rating>
00110 </item>
00111 </channel>
00112 </rss>
00113
00114 (Option return Tree view)
00115 > ./vimeo.py -T
00116 <?xml version="1.0" encoding="UTF-8"?>
00117 <rss version="2.0"
00118 xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
00119 xmlns:content="http://purl.org/rss/1.0/modules/content/"
00120 xmlns:cnettv="http://cnettv.com/mrss/"
00121 xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
00122 xmlns:media="http://search.yahoo.com/mrss/"
00123 xmlns:atom="http://www.w3.org/2005/Atom"
00124 xmlns:amp="http://www.adobe.com/amp/1.0"
00125 xmlns:dc="http://purl.org/dc/elements/1.1/">
00126 <channel>
00127 <title>Vimeo</title>
00128 <link>http://vimeo.com</link>
00129 <description>Vimeo is a respectful community of creative people who are passionate about sharing the videos they make.</description>
00130 <numresults>18</numresults>
00131 <returned>1</returned>
00132 <startindex>0</startindex>
00133 <directory name="Newest Channels/Most ..." thumbnail="/usr/local/share/mythtv/mythnetvision/icons/vimeo.png">
00134 <directory name="Most Recent Channels" thumbnail="/usr/local/share/mythtv/mythnetvision/icons/directories/topics/most_recent.png">
00135 <item>
00136 <title>PSA 1: Family Meal is a Healthy Meal</title>
00137 <author>Kevin Shermach</author>
00138 <pubDate>Tue, 05 Jan 2010 13:08:56 GMT</pubDate>
00139 <description>Channel "NYC YMCA new PSA Campaign": :30, :15 and :10</description>
00140 <link>http://vimeo.com/moogaloop.swf?clip_id=8557253&autoplay=1</link>
00141 <media:group>
00142 <media:thumbnail url='http://ts.vimeo.com.s3.amazonaws.com/402/131/40213146_200.jpg'/>
00143 <media:content url='http://vimeo.com/moogaloop.swf?clip_id=8557253&autoplay=1' duration='60' width='480' height='272' lang=''/>
00144 </media:group>
00145 <rating>0</rating>
00146 </item>
00147 ...
00148 <item>
00149 <title>NIN Sydney 2.24.09 - Mid-show Power Outage [HD]</title>
00150 <author>Nine Inch Nails</author>
00151 <pubDate>Tue, 24 Feb 2009 13:58:19 GMT</pubDate>
00152 <description>Power in the Hordern Pavilion went out midway through the set, forcing the show to stop for 40 minutes and nearly causing it to be canceled. Filmed by Rob Sheridan with the Canon 5D Mark II.</description>
00153 <link>http://vimeo.com/moogaloop.swf?clip_id=3353364&autoplay=1</link>
00154 <media:group>
00155 <media:thumbnail url='http://ats.vimeo.com/240/077/2400771_200.jpg'/>
00156 <media:content url='http://vimeo.com/moogaloop.swf?clip_id=3353364&autoplay=1' duration='268' width='504' height='284' lang=''/>
00157 </media:group>
00158 <rating>216</rating>
00159 </item>
00160 </directory>
00161 </directory>
00162 </directory>
00163 </channel>
00164 </rss>
00165 '''
00166 __search_max_page_items__ = 20
00167 __tree_max_page_items__ = 20
00168
00169 import sys, os
00170
00171 class OutStreamEncoder(object):
00172 """Wraps a stream with an encoder
00173 """
00174 def __init__(self, outstream, encoding=None):
00175 self.out = outstream
00176 if not encoding:
00177 self.encoding = sys.getfilesystemencoding()
00178 else:
00179 self.encoding = encoding
00180
00181 def write(self, obj):
00182 """Wraps the output stream, encoding Unicode strings with the specified encoding"""
00183 if isinstance(obj, unicode):
00184 self.out.write(obj.encode(self.encoding))
00185 else:
00186 self.out.write(obj)
00187
00188 def __getattr__(self, attr):
00189 """Delegate everything but write to the stream"""
00190 return getattr(self.out, attr)
00191
00192 sys.stdout = OutStreamEncoder(sys.stdout)
00193 sys.stderr = OutStreamEncoder(sys.stderr)
00194
00195
00196
00197
00198
00199 try:
00200 import nv_python_libs.vimeo.vimeo_api as target
00201 except Exception,e:
00202 sys.stderr.write('''
00203 The subdirectory "nv_python_libs/vimeo" containing the modules vimeo_api.py (v0.2.0 or greater),
00204 They should have been included with the distribution of vimeo.py.
00205 Error(%s)
00206 ''' % e)
00207 sys.exit(1)
00208
00209 if target.__version__ < '0.2.0':
00210 sys.stderr.write("\n! Error: Your current installed vimeo_api.py version is (%s)\nYou must at least have version (0.2.0) or higher.\n" % target.__version__)
00211 sys.exit(1)
00212
00213
00214
00215 import nv_python_libs.mainProcess as process
00216
00217
00218
00219 try:
00220 import nv_python_libs.mainProcess as process
00221 except Exception, e:
00222 sys.stderr.write('''
00223 The python script "nv_python_libs/mainProcess.py" must be present.
00224 Error(%s)
00225 ''' % e)
00226 sys.exit(1)
00227
00228 if process.__version__ < '0.2.0':
00229 sys.stderr.write("\n! Error: Your current installed mainProcess.py version is (%s)\nYou must at least have version (0.2.0) or higher.\n" % process.__version__)
00230 sys.exit(1)
00231
00232 if __name__ == '__main__':
00233
00234 apikey = ""
00235 main = process.mainProcess(target, apikey, )
00236 main.grabberInfo = {}
00237 main.grabberInfo['title'] = __title__
00238 main.grabberInfo['command'] = u'vimeo.py'
00239 main.grabberInfo['author'] = __author__
00240 main.grabberInfo['thumbnail'] = 'vimeo.png'
00241 main.grabberInfo['type'] = ['video']
00242 main.grabberInfo['desc'] = u"Vimeo is a respectful community of creative people who are passionate about sharing the videos they make."
00243 main.grabberInfo['version'] = __version__
00244 main.grabberInfo['search'] = True
00245 main.grabberInfo['tree'] = True
00246 main.grabberInfo['html'] = False
00247 main.grabberInfo['usage'] = __usage_examples__
00248 main.grabberInfo['SmaxPage'] = __search_max_page_items__
00249 main.grabberInfo['TmaxPage'] = __tree_max_page_items__
00250 main.main()