mirror of
https://github.com/soimort/you-get.git
synced 2025-02-09 03:37:52 +03:00
[naver] call universal_download if video extraction fails
This commit is contained in:
parent
1ea4abdb77
commit
fc8df5eb24
@ -7,31 +7,35 @@ import re
|
|||||||
|
|
||||||
from ..util import log
|
from ..util import log
|
||||||
from ..common import get_content, download_urls, print_info, playlist_not_supported, url_size
|
from ..common import get_content, download_urls, print_info, playlist_not_supported, url_size
|
||||||
|
from .universal import *
|
||||||
|
|
||||||
__all__ = ['naver_download_by_url']
|
__all__ = ['naver_download_by_url']
|
||||||
|
|
||||||
|
|
||||||
def naver_download_by_url(url, info_only=False, **kwargs):
|
def naver_download_by_url(url, output_dir='.', merge=True, info_only=False, **kwargs):
|
||||||
ep = 'https://apis.naver.com/rmcnmv/rmcnmv/vod/play/v2.0/{}?key={}'
|
ep = 'https://apis.naver.com/rmcnmv/rmcnmv/vod/play/v2.0/{}?key={}'
|
||||||
page = get_content(url)
|
page = get_content(url)
|
||||||
og_video_url = re.search(r"<meta\s+property=\"og:video:url\"\s+content='(.+?)'>", page).group(1)
|
try:
|
||||||
params_dict = urllib.parse.parse_qs(urllib.parse.urlparse(og_video_url).query)
|
og_video_url = re.search(r"<meta\s+property=\"og:video:url\"\s+content='(.+?)'>", page).group(1)
|
||||||
vid = params_dict['vid'][0]
|
params_dict = urllib.parse.parse_qs(urllib.parse.urlparse(og_video_url).query)
|
||||||
key = params_dict['outKey'][0]
|
vid = params_dict['vid'][0]
|
||||||
meta_str = get_content(ep.format(vid, key))
|
key = params_dict['outKey'][0]
|
||||||
meta_json = json.loads(meta_str)
|
meta_str = get_content(ep.format(vid, key))
|
||||||
if 'errorCode' in meta_json:
|
meta_json = json.loads(meta_str)
|
||||||
log.wtf(meta_json['errorCode'])
|
if 'errorCode' in meta_json:
|
||||||
title = meta_json['meta']['subject']
|
log.wtf(meta_json['errorCode'])
|
||||||
videos = meta_json['videos']['list']
|
title = meta_json['meta']['subject']
|
||||||
video_list = sorted(videos, key=lambda video: video['encodingOption']['width'])
|
videos = meta_json['videos']['list']
|
||||||
video_url = video_list[-1]['source']
|
video_list = sorted(videos, key=lambda video: video['encodingOption']['width'])
|
||||||
# size = video_list[-1]['size']
|
video_url = video_list[-1]['source']
|
||||||
# result wrong size
|
# size = video_list[-1]['size']
|
||||||
size = url_size(video_url)
|
# result wrong size
|
||||||
print_info(site_info, title, 'mp4', size)
|
size = url_size(video_url)
|
||||||
if not info_only:
|
print_info(site_info, title, 'mp4', size)
|
||||||
download_urls([video_url], title, 'mp4', size, **kwargs)
|
if not info_only:
|
||||||
|
download_urls([video_url], title, 'mp4', size, **kwargs)
|
||||||
|
except:
|
||||||
|
universal_download(url, output_dir, merge=merge, info_only=info_only, **kwargs)
|
||||||
|
|
||||||
site_info = "naver.com"
|
site_info = "naver.com"
|
||||||
download = naver_download_by_url
|
download = naver_download_by_url
|
||||||
|
Loading…
Reference in New Issue
Block a user