#!/usr/bin/env python __all__ = ['twitter_download'] from ..common import * from .vine import vine_download def extract_m3u(source): r1 = get_content(source) s1 = re.findall(r'(/ext_tw_video/.*)', r1) s1 += re.findall(r'(/amplify_video/.*)', r1) r2 = get_content('https://video.twimg.com%s' % s1[-1]) s2 = re.findall(r'(/ext_tw_video/.*)', r2) s2 += re.findall(r'(/amplify_video/.*)', r2) return ['https://video.twimg.com%s' % i for i in s2] def twitter_download(url, output_dir='.', merge=True, info_only=False, **kwargs): if re.match(r'https?://mobile', url): # normalize mobile URL url = 'https://' + match1(url, r'//mobile\.(.+)') html = get_html(url) screen_name = r1(r'data-screen-name="([^"]*)"', html) or \ r1(r'\s*', vmap) item_id = i['tweet_id'] page_title = "{} [{}]".format(screen_name, item_id) elif 'scribe_playlist_url' in i: scribe_playlist_url = i['scribe_playlist_url'] return vine_download(scribe_playlist_url, output_dir, merge=merge, info_only=info_only) try: urls = extract_m3u(source) except: urls = [source] size = urls_size(urls) mime, ext = 'video/mp4', 'mp4' print_info(site_info, page_title, mime, size) if not info_only: download_urls(urls, page_title, ext, size, output_dir, merge=merge) site_info = "Twitter.com" download = twitter_download download_playlist = playlist_not_supported('twitter')