2013-08-08 20:27:54 +04:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
__all__ = ['ted_download']
|
|
|
|
|
|
|
|
from ..common import *
|
2014-06-10 04:34:16 +04:00
|
|
|
import json
|
2013-08-08 20:27:54 +04:00
|
|
|
|
2015-09-26 08:45:39 +03:00
|
|
|
def ted_download(url, output_dir='.', merge=True, info_only=False, **kwargs):
|
2014-06-10 04:34:16 +04:00
|
|
|
html = get_html(url)
|
2017-08-05 07:54:51 +03:00
|
|
|
patt = r'"__INITIAL_DATA__"\s*:\s*\{(.+)\}'
|
|
|
|
metadata = json.loads('{' + match1(html, patt) + '}')
|
2014-06-10 04:34:16 +04:00
|
|
|
title = metadata['talks'][0]['title']
|
2017-08-05 07:54:51 +03:00
|
|
|
nativeDownloads = metadata['talks'][0]['downloads']['nativeDownloads']
|
2014-06-10 04:34:16 +04:00
|
|
|
for quality in ['high', 'medium', 'low']:
|
|
|
|
if quality in nativeDownloads:
|
|
|
|
url = nativeDownloads[quality]
|
2013-08-08 20:27:54 +04:00
|
|
|
type, ext, size = url_info(url)
|
|
|
|
print_info(site_info, title, type, size)
|
|
|
|
if not info_only:
|
|
|
|
download_urls([url], title, ext, size, output_dir, merge=merge)
|
|
|
|
break
|
|
|
|
|
2013-10-18 16:29:19 +04:00
|
|
|
site_info = "TED.com"
|
2013-08-08 20:27:54 +04:00
|
|
|
download = ted_download
|
|
|
|
download_playlist = playlist_not_supported('ted')
|