You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.2 KiB
Python
75 lines
2.2 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
__author__ = "J. Schauer <josch@pyneo.org>"
|
|
__version__ = "prototype"
|
|
__copyright__ = "Copyright (c) 2010 J. Schauer"
|
|
__license__ = "AGPLv3"
|
|
|
|
from imp import load_source
|
|
youtube = load_source('youtube', '/usr/bin/youtube-dl')
|
|
|
|
for elm in ['YoutubeIE', 'MetacafeIE', 'DailymotionIE', 'YoutubePlaylistIE',
|
|
'YoutubeUserIE', 'YoutubeSearchIE', 'GoogleIE', 'GoogleSearchIE',
|
|
'PhotobucketIE', 'YahooIE', 'YahooSearchIE', 'GenericIE',
|
|
'FileDownloader', 'PostProcessor']:
|
|
globals()[elm] = getattr(youtube, elm)
|
|
del youtube
|
|
|
|
FileDownloader.process_info = lambda self, info_dict : setattr(self, 'info_dict', info_dict)
|
|
|
|
import urllib2
|
|
from urllib import splittype, splithost
|
|
|
|
def getytdlurl(ytid):
|
|
youtube_ie = YoutubeIE()
|
|
metacafe_ie = MetacafeIE(youtube_ie)
|
|
dailymotion_ie = DailymotionIE()
|
|
youtube_pl_ie = YoutubePlaylistIE(youtube_ie)
|
|
youtube_user_ie = YoutubeUserIE(youtube_ie)
|
|
youtube_search_ie = YoutubeSearchIE(youtube_ie)
|
|
google_ie = GoogleIE()
|
|
google_search_ie = GoogleSearchIE(google_ie)
|
|
photobucket_ie = PhotobucketIE()
|
|
yahoo_ie = YahooIE()
|
|
yahoo_search_ie = YahooSearchIE(yahoo_ie)
|
|
generic_ie = GenericIE()
|
|
|
|
fd = FileDownloader({
|
|
'username': None,
|
|
'password': None,
|
|
'format': None,
|
|
'quiet': True,
|
|
'simulate': True,
|
|
'ignoreerrors': False
|
|
})
|
|
|
|
fd.add_info_extractor(youtube_search_ie)
|
|
fd.add_info_extractor(youtube_pl_ie)
|
|
fd.add_info_extractor(youtube_user_ie)
|
|
fd.add_info_extractor(metacafe_ie)
|
|
fd.add_info_extractor(dailymotion_ie)
|
|
fd.add_info_extractor(youtube_ie)
|
|
fd.add_info_extractor(google_ie)
|
|
fd.add_info_extractor(google_search_ie)
|
|
fd.add_info_extractor(photobucket_ie)
|
|
fd.add_info_extractor(yahoo_ie)
|
|
fd.add_info_extractor(yahoo_search_ie)
|
|
retcode = fd.download((
|
|
ytid,
|
|
))
|
|
if retcode:
|
|
return
|
|
u = fd.info_dict['url'].encode('UTF-8', 'xmlcharrefreplace') # title, url, thumbnail, description
|
|
opener = urllib2.build_opener()
|
|
f = opener.open(urllib2.Request(u))
|
|
_, rest = splittype(f.url)
|
|
host, path = splithost(rest)
|
|
return (host, path,
|
|
fd.info_dict['stitle'].encode('UTF-8', 'xmlcharrefreplace'),
|
|
fd.info_dict['id'].encode('UTF-8', 'xmlcharrefreplace'),
|
|
fd.info_dict['ext'].encode('UTF-8', 'xmlcharrefreplace'))
|
|
|
|
if __name__ == '__main__':
|
|
getytdlurl('gR4OM5tmzno')
|