mirror of https://github.com/yt-dlp/yt-dlp.git
better Vimeo tests; fixed a couple of VimeoIE fields
This commit is contained in:
parent
77c4beab8a
commit
6b3aef80ce
|
@ -6,8 +6,8 @@ import os
|
||||||
import json
|
import json
|
||||||
import unittest
|
import unittest
|
||||||
import sys
|
import sys
|
||||||
import socket
|
|
||||||
import hashlib
|
import hashlib
|
||||||
|
import socket
|
||||||
|
|
||||||
# Allow direct execution
|
# Allow direct execution
|
||||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||||
|
@ -25,7 +25,6 @@ cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar)
|
||||||
proxy_handler = compat_urllib_request.ProxyHandler()
|
proxy_handler = compat_urllib_request.ProxyHandler()
|
||||||
opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
|
opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
|
||||||
compat_urllib_request.install_opener(opener)
|
compat_urllib_request.install_opener(opener)
|
||||||
socket.setdefaulttimeout(300) # 5 minutes should be enough (famous last words)
|
|
||||||
|
|
||||||
class FileDownloader(youtube_dl.FileDownloader):
|
class FileDownloader(youtube_dl.FileDownloader):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
@ -90,12 +89,12 @@ def generator(test_case):
|
||||||
md5_for_file = _file_md5(test_case['file'])
|
md5_for_file = _file_md5(test_case['file'])
|
||||||
self.assertEqual(md5_for_file, test_case['md5'])
|
self.assertEqual(md5_for_file, test_case['md5'])
|
||||||
info_dict = fd.processed_info_dicts[0]
|
info_dict = fd.processed_info_dicts[0]
|
||||||
for (info_element, value) in test_case.get('info_dict', {}).items():
|
for (info_field, value) in test_case.get('info_dict', {}).items():
|
||||||
if value.startswith('md5:'):
|
if value.startswith('md5:'):
|
||||||
md5_info_value = hashlib.md5(info_dict[info_element]).hexdigest()
|
md5_info_value = hashlib.md5(info_dict.get(info_field, '')).hexdigest()
|
||||||
self.assertEqual(value[3:], md5_info_value)
|
self.assertEqual(value[3:], md5_info_value)
|
||||||
else:
|
else:
|
||||||
self.assertEqual(value, info_dict[info_element])
|
self.assertEqual(value, info_dict.get(info_field))
|
||||||
|
|
||||||
return test_template
|
return test_template
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import socket
|
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
@ -22,7 +21,6 @@ cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar)
|
||||||
proxy_handler = compat_urllib_request.ProxyHandler()
|
proxy_handler = compat_urllib_request.ProxyHandler()
|
||||||
opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
|
opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
|
||||||
compat_urllib_request.install_opener(opener)
|
compat_urllib_request.install_opener(opener)
|
||||||
socket.setdefaulttimeout(300) # 5 minutes should be enough (famous last words)
|
|
||||||
|
|
||||||
class FileDownloader(youtube_dl.FileDownloader):
|
class FileDownloader(youtube_dl.FileDownloader):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
import socket
|
|
||||||
import json
|
import json
|
||||||
|
|
||||||
# Allow direct execution
|
# Allow direct execution
|
||||||
|
@ -22,7 +21,6 @@ cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar)
|
||||||
proxy_handler = compat_urllib_request.ProxyHandler()
|
proxy_handler = compat_urllib_request.ProxyHandler()
|
||||||
opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
|
opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
|
||||||
compat_urllib_request.install_opener(opener)
|
compat_urllib_request.install_opener(opener)
|
||||||
socket.setdefaulttimeout(300) # 5 minutes should be enough (famous last words)
|
|
||||||
|
|
||||||
class FakeDownloader(object):
|
class FakeDownloader(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
import socket
|
|
||||||
import json
|
import json
|
||||||
import io
|
import io
|
||||||
import hashlib
|
import hashlib
|
||||||
|
@ -24,7 +23,6 @@ cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar)
|
||||||
proxy_handler = compat_urllib_request.ProxyHandler()
|
proxy_handler = compat_urllib_request.ProxyHandler()
|
||||||
opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
|
opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
|
||||||
compat_urllib_request.install_opener(opener)
|
compat_urllib_request.install_opener(opener)
|
||||||
socket.setdefaulttimeout(300) # 5 minutes should be enough (famous last words)
|
|
||||||
|
|
||||||
class FakeDownloader(object):
|
class FakeDownloader(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
|
@ -37,9 +37,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Vimeo",
|
"name": "Vimeo",
|
||||||
"md5": "60540a4ec7cc378ec84b919c0aed5023",
|
"md5": "8879b6cc097e987f02484baf890129e5",
|
||||||
"url": "http://vimeo.com/14160053",
|
"url": "http://vimeo.com/56015672",
|
||||||
"file": "14160053.mp4"
|
"file": "56015672.mp4",
|
||||||
|
"info_dict": {
|
||||||
|
"title": "youtube-dl test video - ★ \" ' 幸 / \\ ä ↭ 𝕐",
|
||||||
|
"uploader": "Filippo Valsorda",
|
||||||
|
"uploader_id": "user7108434",
|
||||||
|
"upload_date": "20121220",
|
||||||
|
"description": "This is a test case for youtube-dl.\nFor more information, see github.com/rg3/youtube-dl\nTest chars: ★ \" ' 幸 / \\ ä ↭ 𝕐"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Soundcloud",
|
"name": "Soundcloud",
|
||||||
|
|
|
@ -1018,9 +1018,9 @@ class VimeoIE(InfoExtractor):
|
||||||
|
|
||||||
# Extract upload date
|
# Extract upload date
|
||||||
video_upload_date = None
|
video_upload_date = None
|
||||||
mobj = re.search(r'<span id="clip-date" style="display:none">[^:]*: (.*?)( \([^\(]*\))?</span>', webpage)
|
mobj = re.search(r'<meta itemprop="dateCreated" content="(\d{4})-(\d{2})-(\d{2})T', webpage)
|
||||||
if mobj is not None:
|
if mobj is not None:
|
||||||
video_upload_date = mobj.group(1)
|
video_upload_date = mobj.group(1) + mobj.group(2) + mobj.group(3)
|
||||||
|
|
||||||
# Vimeo specific: extract request signature and timestamp
|
# Vimeo specific: extract request signature and timestamp
|
||||||
sig = config['request']['signature']
|
sig = config['request']['signature']
|
||||||
|
|
|
@ -298,7 +298,8 @@ def clean_html(html):
|
||||||
"""Clean an HTML snippet into a readable string"""
|
"""Clean an HTML snippet into a readable string"""
|
||||||
# Newline vs <br />
|
# Newline vs <br />
|
||||||
html = html.replace('\n', ' ')
|
html = html.replace('\n', ' ')
|
||||||
html = re.sub('\s*<\s*br\s*/?\s*>\s*', '\n', html)
|
html = re.sub(r'\s*<\s*br\s*/?\s*>\s*', '\n', html)
|
||||||
|
html = re.sub(r'<\s*/\s*p\s*>\s*<\s*p[^>]*>', '\n', html)
|
||||||
# Strip html tags
|
# Strip html tags
|
||||||
html = re.sub('<.*?>', '', html)
|
html = re.sub('<.*?>', '', html)
|
||||||
# Replace html entities
|
# Replace html entities
|
||||||
|
|
Loading…
Reference in New Issue