mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	better Vimeo tests; fixed a couple of VimeoIE fields
This commit is contained in:
		| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Filippo Valsorda
					Filippo Valsorda