Skip to content

媒体下载工具 You-Get

作用

下载视频/图片/音频,简单直接,可本地部署

支持的 站点范围

安装

前提:

  • python > 3.7
  • ffmpeg > 1.0
shell
conda create -n you-get python=3.12 -y
conda activate you-get
pip install you-get

后续升级时可以使用如下命令进行升级

shell
pip install --upgrade you-get

使用

下载视频

当您获得感兴趣的视频时,使用--info/-i选项查看所有可用的质量和格式:

shell
$ you-get -i 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
site:                YouTube
title:               Me at the zoo
streams:             # Available quality and codecs
[ DASH ] ____________________________________
- itag:          242
container:     webm
quality:       320x240
size:          0.6 MiB (618358 bytes)
# download-with: you-get --itag=242 [URL]

    - itag:          395
      container:     mp4
      quality:       320x240
      size:          0.5 MiB (550743 bytes)
    # download-with: you-get --itag=395 [URL]

    - itag:          133
      container:     mp4
      quality:       320x240
      size:          0.5 MiB (498558 bytes)
    # download-with: you-get --itag=133 [URL]

    - itag:          278
      container:     webm
      quality:       192x144
      size:          0.4 MiB (392857 bytes)
    # download-with: you-get --itag=278 [URL]

    - itag:          160
      container:     mp4
      quality:       192x144
      size:          0.4 MiB (370882 bytes)
    # download-with: you-get --itag=160 [URL]

    - itag:          394
      container:     mp4
      quality:       192x144
      size:          0.4 MiB (367261 bytes)
    # download-with: you-get --itag=394 [URL]

    [ DEFAULT ] _________________________________
    - itag:          43
      container:     webm
      quality:       medium
      size:          0.5 MiB (568748 bytes)
    # download-with: you-get --itag=43 [URL]

    - itag:          18
      container:     mp4
      quality:       small
    # download-with: you-get --itag=18 [URL]

    - itag:          36
      container:     3gp
      quality:       small
    # download-with: you-get --itag=36 [URL]

    - itag:          17
      container:     3gp
      quality:       small
    # download-with: you-get --itag=17 [URL]

默认情况下,您将获得顶部的版本。如果您觉得不错,请下载:

shell
$ you-get 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
site:                YouTube
title:               Me at the zoo
stream:
- itag:          242
container:     webm
quality:       320x240
size:          0.6 MiB (618358 bytes)
# download-with: you-get --itag=242 [URL]

Downloading Me at the zoo.webm ...
100% (  0.6/  0.6MB) ├██████████████████████████████████████████████████████████████████████████████┤[2/2]    2 MB/s
Merging video parts... Merged into Me at the zoo.webm

Saving Me at the zoo.en.srt ... Done.

(如果 YouTube 视频有任何隐藏字幕,它们将以 SubRip 字幕格式与视频文件一起下载。)

you-get或者,如果您更喜欢其他格式(mp4),只需使用向您显示的选项即可:

shell
$ you-get --itag=18 'https://www.youtube.com/watch?v=jNQXAC9IVRw'

说明:

  • 默认下载的格式是质量最高的格式。
  • ffmpeg是必需的依赖项,用于下载和合并分多个部分流式传输的视频(例如在优酷等某些网站上),以及用于 1080p 或高分辨率的 YouTube 视频。
  • you-get如果您下载视频部分后不想合并,请使用--no-merge/-n选项。

下载其他内容

如果你已经拥有所需资源的 URL,则可以使用以下命令直接下载

shell
$ you-get https://stallman.org/rms.jpg
Site:       stallman.org
Title:      rms
Type:       JPEG Image (image/jpeg)
Size:       0.06 MiB (66482 Bytes)

Downloading rms.jpg ...
 100% (  0.1/  0.1MB) ├████████████████████████████████████████┤[1/1]  127 kB/s

否则,you-get将抓取网页并尝试找出是否有您感兴趣的内容:

shell
$ you-get https://kopasas.tumblr.com/post/69361932517
Site:       Tumblr.com
Title:      [tumblr] tumblr_mxhg13jx4n1sftq6do1_640
Type:       Portable Network Graphics (image/png)
Size:       0.11 MiB (118484 Bytes)

Downloading [tumblr] tumblr_mxhg13jx4n1sftq6do1_640.png ...
 100% (  0.1/  0.1MB) ├████████████████████████████████████████┤[1/1]   22 MB/s

说明:此功能最适合从 Tumblr 和 Blogger 等热门网站抓取大尺寸图像。

在 Google 视频上搜索并下载

您可以将任何内容传递给you-get。如果它不是有效的 URL,you-get则会进行 Google 搜索并为您下载最相关的视频。

shell
$ you-get "Richard Stallman eats"

暂停和恢复下载

您可以使用 Ctrl+C 来中断下载。

临时.download 文件保存在输出目录中。下次 you-get 使用相同参数运行时,下载进度将从上一次会话恢复。如果文件已完全下载(临时.download扩展名消失),you-get则将跳过下载。

要强制重新下载,请使用--force/-f选项。(警告:这样做将覆盖任何具有相同名称的现有文件或临时文件!)

设置下载文件的路径和名称

使用--output-dir/-o选项设置路径,使用--output-filename/-O设置下载文件的名称:

shell
$ you-get -o ~/Videos -O zoo.webm 'https://www.youtube.com/watch?v=jNQXAC9IVRw'

说明:

  • 如果您遇到默认视频标题的问题,这些选项会很有帮助,因为默认视频标题可能包含无法在您当前的 shell / 操作系统 / 文件系统中正常播放的特殊字符。
  • 如果您编写脚本来批量下载文件并将其放入具有指定名称的指定文件夹中,这些选项也会很有用。

代理设置

您可以通过/选项指定要 you-get 使用的HTTP 代理:--http-proxy/-x

shell
$ you-get -x 127.0.0.1:8087 'https://www.youtube.com/watch?v=jNQXAC9IVRw'

默认情况下会应用系统代理设置(即环境变量)。要禁用任何代理,请使用该--no-proxy选项。

并非所有视频都对任何人公开。如果您需要登录帐户才能访问某些内容(例如私人视频),则不可避免地需要you-get通过--cookies/-c选项将浏览器 cookie 提供给它。

说明: 支持两种格式的浏览器 cookie:Mozilla cookies.sqlite 和 Netscape cookies.txt

获取指定页面的可下载资源列表

使用--url/-u获取从页面中提取的可下载资源 URL 列表。

问题答疑

如果 you-get 无法让您得到想要的东西,检查它是否是 bug列表 上的已知问题