[Bug]: Imports fail when attempting to import Private Videos

Author: lamusmaserCreated Mar 6, 2026Updated Apr 30, 2026
Labelsbug

I've read the documentation

  • I'm running the latest version of Tube Archivist and have read the release notes.
  • I'm beta testing and am running the latest unstable build.
  • I have read the how to open an issue guide, particularly the bug report section. I've double checked that I don't open a yt-dlp issue here.

Operating System

Synology - Docker Compose

Your Bug Report

Describe the bug

When attempting to import videos from another instance or downloaded externally that are still on YouTube, but are Private Videos, then TA is unable to import the files successfully. This occurs when the name is set to each of the variations that are described (<basename>.ext, <video_id>.ext, or <basename>_<video_id>.ext). Effectively, this means that the "Offline Import" is only accessible to videos that YT doesn't recognize, rather than any video that is unavailable.

Steps To Reproduce

Attempt to import a video that is a Private Video.

Expected behavior

When TA receives the failed response from YT, then it should move to the local media approach that is described in Offline Import. This enables a greater method for importing and could also solve for users that attempt to import when YouTube is inaccessible (no Internet access).

Relevant log output

bash
[2026-03-06 16:14:34,344: INFO/MainProcess] Task manual_import[1f9474f6-c7fb-4e5c-b1ec-57cb8562a40a] received
[2026-03-06 16:14:34,348: WARNING/ForkPoolWorker-6] manual_import create callback
[2026-03-06 16:14:34,376: WARNING/ForkPoolWorker-6] manual import: {'media': '/cache/import/gBGoDmLMe3U.mp4', 'video_id': False, 'metadata': '/cache/import/gBGoDmLMe3U.info.json', 'thumb': '/cache/import/gBGoDmLMe3U.jpg', 'subtitle': []}
[2026-03-06 16:14:34,475: WARNING/ForkPoolWorker-6] manual import: {'media': '/cache/import/gBGoDmLMe3U.mp4', 'video_id': 'gBGoDmLMe3U', 'metadata': '/cache/import/gBGoDmLMe3U.info.json', 'thumb': '/cache/import/gBGoDmLMe3U.jpg', 'subtitle': []}
[2026-03-06 16:14:34,493: WARNING/ForkPoolWorker-6] gBGoDmLMe3U: get metadata from youtube
[2026-03-06 16:14:36,957: WARNING/ForkPoolWorker-6] WARNING: [youtube] No title found in player responses; falling back to title from initial data. Other metadata may also be missing
[2026-03-06 16:14:36,971: WARNING/ForkPoolWorker-6] ERROR: [youtube] gBGoDmLMe3U: Sign in to confirm you’re not a bot. Use --cookies-from-browser or --cookies for the authentication. See  https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp  for how to manually pass cookies. Also see  https://github.com/yt-dlp/yt-dlp/wiki/Extractors#exporting-youtube-cookies  for tips on effectively exporting YouTube cookies
[2026-03-06 16:14:36,971: WARNING/ForkPoolWorker-6] https://www.youtube.com/watch?v=gBGoDmLMe3U: failed to get info from youtube: ERROR: [youtube] gBGoDmLMe3U: Sign in to confirm you’re not a bot. Use --cookies-from-browser or --cookies for the authentication. See  https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp  for how to manually pass cookies. Also see  https://github.com/yt-dlp/yt-dlp/wiki/Extractors#exporting-youtube-cookies  for tips on effectively exporting YouTube cookies
[2026-03-06 16:14:36,990: WARNING/ForkPoolWorker-6] 1f9474f6-c7fb-4e5c-b1ec-57cb8562a40a Failed callback
[2026-03-06 16:14:36,994: ERROR/ForkPoolWorker-6] Task manual_import[1f9474f6-c7fb-4e5c-b1ec-57cb8562a40a] raised unexpected: KeyError('id')
Traceback (most recent call last):
      ~~~^^
  File "/app/appsettings/src/manual.py", line 432, in run
    json_data = self.index_metadata()
  File "/app/appsettings/src/manual.py", line 455, in index_metadata
    video.build_json(
    ~~~~~~~~~~~~~~~~^
        youtube_meta_overwrite=self._get_info_json(),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        media_path=self.current_video["media"],
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Anything else?

No response

Source: tubearchivist/tubearchivist