you-get/get.py
2012-08-20 23:54:03 +08:00

52 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python3
from common import *
import get_tudou
import get_yinyuetai
import get_youku
import get_youtube
def url_to_module(url):
site = r1(r'http://([^/]+)/', url)
assert site, 'invalid url: ' + url
if site.endswith('.com.cn'):
site = site[:-3]
domain = r1(r'(\.[^.]+\.[^.]+)$', site)
assert domain, 'unsupported url: ' + url
k = r1(r'([^.]+)', domain)
downloads = {
'youtube': get_youtube,
'youku': get_youku,
'yinyuetai': get_yinyuetai,
'tudou': get_tudou,
#TODO:
# 'acfun': get_acfun,
# 'bilibili': get_bilibili,
# 'kankanews': get_bilibili,
# 'iask': get_iask,
# 'sina': get_iask,
# 'ku6': get_ku6,
# 'pptv': get_pptv,
# 'iqiyi': get_iqiyi,
# 'sohu': get_sohu,
# '56': get_w56,
# 'cntv': get_cntv,
}
if k in downloads:
return downloads[k]
else:
raise NotImplementedError(url)
def any_download(url, output_dir = '.', merge = True, info_only = False):
m = url_to_module(url)
m.download(url, output_dir = output_dir, merge = merge, info_only = info_only)
def any_download_playlist(url, output_dir = '.', merge = True, info_only = False):
m = url_to_module(url)
m.download_playlist(url, output_dir = output_dir, merge = merge, info_only = info_only)
if __name__ == '__main__':
main('get.py', any_download, any_download_playlist)