如何自动下载并存档我自己的 YouTube 视频?

如何自动下载并存档我自己的 YouTube 视频?

我想下载我所有的 YouTube 视频(可能有数百或数千个,包括直播)。我有许多私人 YouTube 视频,这些视频实际上仅供我个人使用。我开始越来越不信任 Google,并希望对我的所有视频进行本地硬备份。

不幸的是,Google Takeout 因某些未知原因一直无法使用。我甚至购买了一个无限存储空间的 Dropbox 帐户,但“保存到 Dropbox”功能却无法使用,没有任何错误消息。
他们可以选择通过手动单击链接来下载它们,但这太糟糕了,因为有成千上万个 zip 文件。我不会点击每一个 zip 文件。此外,我尝试编写一个简短的脚本来自动点击每个链接,但 Google 不仅限制了我,而且他们使用的 Angular 应用程序打开和关闭对话框并扰乱了整个流程。

如果有人能告诉我如何在不使用 Google Takeout 程序的情况下备份我的所有 Google 数据,我将不胜感激。

答案1

如果您可以以某种方式生成您可以使用的内容的 URL 列表youtube-dl

一种方法可能是:创建一个包含所有视频的“播放列表”(在 YouTube 上),然后使用该--playlist-items选项下载它们。

否则,使用 URL 列表:

$ cat url 列表| \
读取 url 时执行
  echo -e "\n$(tput rev) --- $url --- $(tput sgr0)";
  回声youtube-dl“$url”;
完毕

echo当你准备实际运行 youtube-dl 时,将其删除

答案2

使用youtube-dl这样做:

  1. 一次下载,将 YouTube 播放列表链接添加到youtube-dl-channels.txt
    • 下载某个频道的所有视频:
      链接后面会https://www.youtube.com/channel/跟有频道的唯一 ID
      (例如https://www.youtube.com/channel/UC4FiN46mPTtkJxzRXJY21lQ
    • 下载频道的特定播放列表:
      链接后面会https://www.youtube.com/playlist?list=跟有播放列表的唯一 ID
      (例如https://www.youtube.com/playlist?list=PLmybwiwzi3MUAwm6BuEg3SOlBeaQosHNu

  2. 配置选项你想要youtube-dl.conf (我使用以下内容)
    #
    
              ##::[[---  youtube-dl Config  ---]]::##
    
    #===========================================================
                      ##----- Global -----##
    #===========================================================
    
      ## https://github.com/ytdl-org/youtube-dl/blob/master/README.md#options
    
    # Options:
    #-----------------------------------------------------------
    
    # Continue on download errors:
    -i
    
    
    # Video Selection:
    #-----------------------------------------------------------
    
    # Archive Settings (outputs each video's youtu.be URL ID):
    --download-archive youtube-dl-archive.txt
    
    
    # Filesystem:
    #-----------------------------------------------------------
    
    # Filename Template:
    -o "%(uploader)s/%(playlist)s/%(playlist_index)s - %(title)s (%(duration)ss on %(upload_date)s @ %(id)s).%(ext)s"
    
    # Force resume of partially downloaded files:
    -c
    
    # Write video description to a .description file:
    --write-description
    
    # Write video metadata to a .info.json file:
    --write-info-json
    
    # Write video annotations to a .annotations.xml file:
    --write-annotations
    
    
    # Thumbnail Images:
    #-----------------------------------------------------------
    
    # Write thumbnail image to disk:
    --write-thumbnail
    
    
    # Verbosity:
    #-----------------------------------------------------------
    
    # Print various debugging information:
    -v
    
    
    # Video Format:
    #-----------------------------------------------------------
    
    # Video format:
    -f ("bestvideo[width>=1920]"/bestvideo)+bestaudio/best
    
    # Output to given format if merge is required:
    --merge-output-format mkv
    
    
    # Subtitle:
    #-----------------------------------------------------------
    
    # Write automatically generated subtitle file:
    --write-auto-sub
    
    # Language:
    --sub-lang en
    
    
    # Post-processing:
    #-----------------------------------------------------------
    
    # Write metadata to the video file:
    --add-metadata
    
    # Prefer ffmpeg over avconv:
    --prefer-ffmpeg
    
    # Convert subtitles to specififed format:
    --convert-subs srt
    

  3. 直接执行:
    youtube-dl --config-location youtube-dl.conf
    
    通过脚本执行:
    echo "#!/bin/sh
    
    youtube-dl --config-location youtube-dl.conf" > download_archive.sh
    
    chmod +x ./download_archive.sh ; ./download_archive.sh
    

相关内容