#!/usr/bin/env python __all__ = ['fc2video_download'] from ..common import * from hashlib import md5 from urllib.parse import urlparse import re #---------------------------------------------------------------------- def makeMimi(upid): """From http://cdn37.atwikiimg.com/sitescript/pub/dksitescript/FC2.site.js Also com.hps.util.fc2.FC2EncrptUtil.makeMimiLocal L110""" strSeed = "gGddgPfeaf_gzyr" prehash = upid + "_" + strSeed return md5(prehash.encode('utf-8')).hexdigest() #---------------------------------------------------------------------- def fc2video_download_by_upid(upid, output_dir = '.', merge = True, info_only = False, **kwargs): """""" fake_headers = { 'DNT': '1', 'Accept-Encoding': 'gzip, deflate, sdch', 'Accept-Language': 'en-CA,en;q=0.8,en-US;q=0.6,zh-CN;q=0.4,zh;q=0.2', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.58 Safari/537.36', 'Accept': '*/*', 'X-Requested-With': 'ShockwaveFlash/19.0.0.245', 'Connection': 'keep-alive', } api_base = 'http://video.fc2.com/ginfo.php?upid={upid}&mimi={mimi}'.format(upid = upid, mimi = makeMimi(upid)) html = get_content(api_base, headers=fake_headers) video_url = match1(html, r'filepath=(.+)&sec') video_url = video_url.replace('&mid', '?mid') title = match1(html, r'&title=([^&]+)') type, ext, size = url_info(video_url, headers=fake_headers) print_info(site_info, title, type, size) if not info_only: download_urls([video_url], title, ext, size, output_dir, merge=merge, headers = fake_headers) #---------------------------------------------------------------------- def fc2video_download(url, output_dir = '.', merge = True, info_only = False, **kwargs): """wrapper""" #'http://video.fc2.com/en/content/20151021bTVKnbEw' #'http://xiaojiadianvideo.asia/content/20151021bTVKnbEw' #'http://video.fc2.com/ja/content/20151021bTVKnbEw' #'http://video.fc2.com/tw/content/20151021bTVKnbEw' hostname = urlparse(url).hostname if not ('fc2.com' in hostname or 'xiaojiadianvideo.asia' in hostname): return False upid = match1(url, r'.+/content/(\w+)') fc2video_download_by_upid(upid, output_dir, merge, info_only) site_info = "FC2Video" download = fc2video_download download_playlist = playlist_not_supported('fc2video')