mirror of
https://github.com/soimort/you-get.git
synced 2025-02-03 16:53:56 +03:00
49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
|
#!/usr/bin/env python
|
||
|
|
||
|
__all__ = ['naver_download']
|
||
|
import urllib.request, urllib.parse
|
||
|
from ..common import *
|
||
|
|
||
|
def naver_download(url, output_dir = '.', merge = True, info_only = False, **kwargs):
|
||
|
|
||
|
assert re.search(r'http://tvcast.naver.com/v/', url), "URL is not supported"
|
||
|
|
||
|
html = get_html(url)
|
||
|
contentid = re.search(r'var rmcPlayer = new nhn.rmcnmv.RMCVideoPlayer\("(.+?)", "(.+?)"',html)
|
||
|
videoid = contentid.group(1)
|
||
|
inkey = contentid.group(2)
|
||
|
assert videoid
|
||
|
assert inkey
|
||
|
info_key = urllib.parse.urlencode({'vid': videoid, 'inKey': inkey, })
|
||
|
down_key = urllib.parse.urlencode({'masterVid': videoid,'protocol': 'p2p','inKey': inkey, })
|
||
|
inf_xml = get_html('http://serviceapi.rmcnmv.naver.com/flash/videoInfo.nhn?%s' % info_key )
|
||
|
|
||
|
from xml.dom.minidom import parseString
|
||
|
doc_info = parseString(inf_xml)
|
||
|
Subject = doc_info.getElementsByTagName('Subject')[0].firstChild
|
||
|
title = Subject.data
|
||
|
assert title
|
||
|
|
||
|
xml = get_html('http://serviceapi.rmcnmv.naver.com/flash/playableEncodingOption.nhn?%s' % down_key )
|
||
|
doc = parseString(xml)
|
||
|
|
||
|
encodingoptions = doc.getElementsByTagName('EncodingOption')
|
||
|
old_height = doc.getElementsByTagName('height')[0]
|
||
|
real_url= ''
|
||
|
#to download the highest resolution one,
|
||
|
for node in encodingoptions:
|
||
|
new_height = node.getElementsByTagName('height')[0]
|
||
|
domain_node = node.getElementsByTagName('Domain')[0]
|
||
|
uri_node = node.getElementsByTagName('uri')[0]
|
||
|
if int(new_height.firstChild.data) > int (old_height.firstChild.data):
|
||
|
real_url= domain_node.firstChild.data+ '/' +uri_node.firstChild.data
|
||
|
|
||
|
type, ext, size = url_info(real_url)
|
||
|
print_info(site_info, title, type, size)
|
||
|
if not info_only:
|
||
|
download_urls([real_url], title, ext, size, output_dir, merge = merge)
|
||
|
|
||
|
site_info = "tvcast.naver.com"
|
||
|
download = naver_download
|
||
|
download_playlist = playlist_not_supported('naver')
|