you-get/you_get/main.py

68 lines
1.8 KiB
Python
Raw Normal View History

2012-08-31 17:20:38 +02:00
#!/usr/bin/env python
2012-08-20 23:54:03 +08:00
2012-09-01 00:55:45 +02:00
__all__ = ['main', 'any_download', 'any_download_playlist']
2012-08-31 17:20:38 +02:00
from .downloader import *
from .common import *
2012-08-20 23:54:03 +08:00
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)
2012-09-02 03:13:16 +02:00
if not domain:
domain = site
2012-08-20 23:54:03 +08:00
assert domain, 'unsupported url: ' + url
k = r1(r'([^.]+)', domain)
downloads = {
2013-01-11 04:43:30 +01:00
'163': netease,
2012-09-01 19:44:06 +02:00
'56': w56,
2012-09-01 21:38:23 +02:00
'acfun': acfun,
2012-09-01 22:02:14 +02:00
'bilibili': bilibili,
2012-09-01 18:35:22 +02:00
'cntv': cntv,
2012-09-25 00:27:28 +02:00
'dailymotion': dailymotion,
2013-01-26 23:50:38 +01:00
'facebook': facebook,
2012-10-15 22:57:40 +02:00
'google': googleplus,
2012-09-01 21:03:05 +02:00
'iask': sina,
2012-09-02 15:03:04 +02:00
'ifeng': ifeng,
'iqiyi': iqiyi,
2013-01-27 16:54:11 +01:00
'joy': joy,
2012-09-01 22:02:14 +02:00
'kankanews': bilibili,
2012-09-01 17:45:30 +02:00
'ku6': ku6,
2013-01-31 16:47:41 +01:00
'mixcloud': mixcloud,
'nicovideo': nicovideo,
'pptv': pptv,
2012-12-01 16:14:04 +01:00
'qq': qq,
2012-09-01 21:03:05 +02:00
'sina': sina,
2012-12-01 16:25:32 +01:00
'smgbb': bilibili,
2012-09-01 12:14:12 +02:00
'sohu': sohu,
2012-12-10 00:09:13 +01:00
'soundcloud': soundcloud,
2012-08-31 17:20:38 +02:00
'tudou': tudou,
2012-12-18 17:26:35 +01:00
'tumblr': tumblr,
2012-09-02 03:13:16 +02:00
'vimeo': vimeo,
2012-12-23 00:46:22 +08:00
'xiami': xiami,
2012-09-01 12:14:12 +02:00
'yinyuetai': yinyuetai,
'youku': youku,
'youtu': youtube,
2012-09-01 12:14:12 +02:00
'youtube': youtube,
2012-09-01 22:02:14 +02:00
#TODO
2012-08-20 23:54:03 +08:00
}
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)
2012-09-01 00:55:45 +02:00
def main():
script_main('you-get', any_download, any_download_playlist)