aboutsummaryrefslogtreecommitdiff
path: root/yt_dlp/extractor/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'yt_dlp/extractor/common.py')
-rw-r--r--yt_dlp/extractor/common.py28
1 files changed, 7 insertions, 21 deletions
diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py
index 3e7734ce1..8d199b353 100644
--- a/yt_dlp/extractor/common.py
+++ b/yt_dlp/extractor/common.py
@@ -2,7 +2,6 @@ import base64
import collections
import functools
import getpass
-import hashlib
import http.client
import http.cookiejar
import http.cookies
@@ -78,7 +77,6 @@ from ..utils import (
parse_iso8601,
parse_m3u8_attributes,
parse_resolution,
- sanitize_filename,
sanitize_url,
smuggle_url,
str_or_none,
@@ -100,6 +98,7 @@ from ..utils import (
xpath_text,
xpath_with_ns,
)
+from ..utils._utils import _request_dump_filename
class InfoExtractor:
@@ -1022,23 +1021,6 @@ class InfoExtractor:
'Visit http://blocklist.rkn.gov.ru/ for a block reason.',
expected=True)
- def _request_dump_filename(self, url, video_id, data=None):
- if data is not None:
- data = hashlib.md5(data).hexdigest()
- basen = join_nonempty(video_id, data, url, delim='_')
- trim_length = self.get_param('trim_file_name') or 240
- if len(basen) > trim_length:
- h = '___' + hashlib.md5(basen.encode()).hexdigest()
- basen = basen[:trim_length - len(h)] + h
- filename = sanitize_filename(f'{basen}.dump', restricted=True)
- # Working around MAX_PATH limitation on Windows (see
- # http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx)
- if os.name == 'nt':
- absfilepath = os.path.abspath(filename)
- if len(absfilepath) > 259:
- filename = fR'\\?\{absfilepath}'
- return filename
-
def __decode_webpage(self, webpage_bytes, encoding, headers):
if not encoding:
encoding = self._guess_encoding_from_content(headers.get('Content-Type', ''), webpage_bytes)
@@ -1067,7 +1049,9 @@ class InfoExtractor:
if self.get_param('write_pages'):
if isinstance(url_or_request, Request):
data = self._create_request(url_or_request, data).data
- filename = self._request_dump_filename(urlh.url, video_id, data)
+ filename = _request_dump_filename(
+ urlh.url, video_id, data,
+ trim_length=self.get_param('trim_file_name'))
self.to_screen(f'Saving request to {filename}')
with open(filename, 'wb') as outf:
outf.write(webpage_bytes)
@@ -1128,7 +1112,9 @@ class InfoExtractor:
impersonate=None, require_impersonation=False):
if self.get_param('load_pages'):
url_or_request = self._create_request(url_or_request, data, headers, query)
- filename = self._request_dump_filename(url_or_request.url, video_id, url_or_request.data)
+ filename = _request_dump_filename(
+ url_or_request.url, video_id, url_or_request.data,
+ trim_length=self.get_param('trim_file_name'))
self.to_screen(f'Loading request from {filename}')
try:
with open(filename, 'rb') as dumpf: