Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[nitter] Weird video filenames with ytdl.outtmpl set #3279

Closed
kattjevfel opened this issue Nov 21, 2022 · 2 comments
Closed

[nitter] Weird video filenames with ytdl.outtmpl set #3279

kattjevfel opened this issue Nov 21, 2022 · 2 comments

Comments

@kattjevfel
Copy link
Contributor

With only downloader.ytdl.outtmlp set, the resulting filename becomes, for a lack of better words, strange.

katt@main ~ » gallery-dl nitter:https://nitter.it/i/status/1435640652189081605 --verbose
[gallery-dl][debug] Version 1.24.0
[gallery-dl][debug] Python 3.10.8 - Linux-6.0.9-zen1-1-zen-x86_64-with-glibc2.36
[gallery-dl][debug] requests 2.28.1 - urllib3 1.26.12
[gallery-dl][debug] Configuration Files ['${HOME}/.config/gallery-dl/config.json']
[gallery-dl][debug] Starting DownloadJob for 'nitter:https://nitter.it/i/status/1435640652189081605'
[nitter.it][debug] Using NitterTweetExtractor for 'nitter:https://nitter.it/i/status/1435640652189081605'
[urllib3.connectionpool][debug] Starting new HTTPS connection (1): nitter.it:443
[urllib3.connectionpool][debug] https://nitter.it:443 "GET /i/status/1435640652189081605 HTTP/1.1" 200 None
[downloader.ytdl][debug] [generic] aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==: Downloading webpage
[downloader.ytdl][debug] [generic] aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==: Downloading m3u8 information
./gallery-dl/nitter.it/letsgameitout/aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvc…0vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==.mp4[downloader.ytdl][debug] [hlsnative] Downloading m3u8 manifest
[downloader.ytdl][debug] [hlsnative] Total fragments: 11
[downloader.ytdl][debug] [download] Destination: ./gallery-dl/nitter.it/letsgameitout/aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==-aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==.mp4
[downloader.ytdl][error] ERROR: unable to download video data: [Errno 36] File name too long: './gallery-dl/nitter.it/letsgameitout/aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==-aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==.mp4.ytdl'
[downloader.ytdl][debug] Traceback
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/yt_dlp/utils.py", line 641, in sanitize_open
    stream = locked_file(filename, open_mode, block=False).__enter__()
  File "/usr/lib/python3.10/site-packages/yt_dlp/utils.py", line 2193, in __init__
    self.f = os.fdopen(os.open(filename, flags, 0o666), mode, encoding=encoding)
OSError: [Errno 36] File name too long: './gallery-dl/nitter.it/letsgameitout/aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==-aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==.mp4.ytdl'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 3227, in process_info
    success, real_download = self.dl(temp_filename, info_dict)
  File "/usr/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 2953, in dl
    return fd.download(name, new_info, subtitle)
  File "/usr/lib/python3.10/site-packages/yt_dlp/downloader/common.py", line 441, in download
    ret = self.real_download(filename, info_dict)
  File "/usr/lib/python3.10/site-packages/yt_dlp/downloader/hls.py", line 141, in real_download
    self._prepare_and_start_frag_download(ctx, info_dict)
  File "/usr/lib/python3.10/site-packages/yt_dlp/downloader/fragment.py", line 81, in _prepare_and_start_frag_download
    self._prepare_frag_download(ctx)
  File "/usr/lib/python3.10/site-packages/yt_dlp/downloader/fragment.py", line 205, in _prepare_frag_download
    self._write_ytdl_file(ctx)
  File "/usr/lib/python3.10/site-packages/yt_dlp/downloader/fragment.py", line 101, in _write_ytdl_file
    frag_index_stream, _ = self.sanitize_open(self.ytdl_filename(ctx['filename']), 'w')
  File "/usr/lib/python3.10/site-packages/yt_dlp/downloader/common.py", line 232, in wrapper
    retry.error_callback(err, 1, 0)
  File "/usr/lib/python3.10/site-packages/yt_dlp/downloader/common.py", line 218, in error_callback
    return RetryManager.report_retry(
  File "/usr/lib/python3.10/site-packages/yt_dlp/utils.py", line 5947, in report_retry
    raise e
  File "/usr/lib/python3.10/site-packages/yt_dlp/downloader/common.py", line 227, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/lib/python3.10/site-packages/yt_dlp/downloader/common.py", line 238, in sanitize_open
    f, filename = sanitize_open(filename, open_mode)
  File "/usr/lib/python3.10/site-packages/yt_dlp/utils.py", line 643, in sanitize_open
    stream = open(filename, open_mode)
OSError: [Errno 36] File name too long: './gallery-dl/nitter.it/letsgameitout/aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==-aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==.mp4.ytdl'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/gallery_dl/downloader/ytdl.py", line 114, in _download_video
    ytdl_instance.process_info(info_dict)
  File "/usr/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 3236, in process_info
    self.report_error('unable to download video data: %s' % error_to_compat_str(err))
  File "/usr/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 1005, in report_error
    self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs)
  File "/usr/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py", line 945, in trouble
    raise DownloadError(message, exc_info)
yt_dlp.utils.DownloadError: ERROR: unable to download video data: [Errno 36] File name too long: './gallery-dl/nitter.it/letsgameitout/aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==-aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==.mp4.ytdl'
[download][error] Failed to download aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==-aHR0cHM6Ly92aWRlby50d2ltZy5jb20vZXh0X3R3X3ZpZGVvLzE0MzU2NDAxNTI1ODQ0OTEwMTQvcHUvcGwvTExQZlBCcWh3LXpnZU4xSy5tM3U4P3RhZz0xMiZjb250YWluZXI9Zm1wNA==.mp4

This is my entire config (slimmed down for testing this):

{
    "downloader": {
        "ytdl": {
            "outtmpl": "%(title).210B-%(id)s.%(ext)s"
        }
    }
}

Downloading it with yt-dlp directly works just fine:

katt@main ~ » yt-dlp https://nitter.it/i/status/1435640652189081605 --output "%(title).210B-%(id)s.%(ext)s"
[Nitter] 1435640652189081605: Downloading webpage
[Nitter] 1435640652189081605: Downloading m3u8 information
[info] 1435640652189081605: Downloading 1 format(s): 2176
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 11
[download] Destination: Let's Game It Out - GOG rereleasing Star Trek Elite Force 2 reminds me how you could damage yourself ahead of cut scenes to AMAZING results. Like this clip I took like a decade ago that STILL makes me laugh-1435640652189081605.mp4
[download] 100% of    2.42MiB in 00:00:05 at 463.40KiB/s

gallery-dl-git 1.24.0.r0.g8a021e4e-1
yt-dlp-git 2022.11.11.r25.g02b2f9fa7-1

@mikf
Copy link
Owner

mikf commented Nov 21, 2022

The weird filename comes from gallery-dl using ytdl with direct .m3u8 manifest URLs and not Nitter Tweet URLs. It is basically operating like with twitter.videos set to true and not "ytdl".

$ gallery-dl -g https://nitter.pussthecat.org/i/status/1065692031626829824
ytdl:https://nitter.pussthecat.org/video/B875137EDC8FF/https%3A%2F%2Fvideo.twimg.com%2Fext_tw_video%2F1065691868439007232%2Fpu%2Fpl%2Fnv8hUQC1R0SjhzcZ.m3u8%3Ftag%3D5

# should be
# ytdl:https://nitter.pussthecat.org/i/status/1065692031626829824
# to get a proper 'title'

mikf added a commit that referenced this issue Nov 26, 2022
with the same semantics as for twitter
@mikf
Copy link
Owner

mikf commented Nov 26, 2022

This is fixed with e31d121 when setting videos to "ytdl", as with Twitter.

@mikf mikf closed this as completed Nov 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants