mirror of
https://github.com/Dichgrem/Blog.git
synced 2025-12-17 13:51:59 -05:00
update:yt-dlp
This commit is contained in:
@@ -6,26 +6,27 @@ date = 2025-04-12
|
||||
tags = ["网络艺术"]
|
||||
+++
|
||||
|
||||
前言 有时候我们想要视频保存到本地以便离线回看。yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。
|
||||
前言 yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。
|
||||
|
||||
<!-- more -->
|
||||
|
||||
有时候我们想要下载网络上的某些视频,比如Bilibili,YouTube等等,但它们没有提供下载按钮,这时候就可以用开源的yt-dlp来进行下载。和Aria2一样,很多下载软件的核心就是yt-dlp.
|
||||
|
||||
## 历史沿革:从 youtube-dl 到 yt-dlp
|
||||
## 历史
|
||||
|
||||
- **起源与演进**
|
||||
`youtube-dl` 由 Ricardo García González 于 **2006 年**创建,最初仅支持 YouTube,随后扩展至其他网站,成为 GitHub 上最受欢迎的开源下载项目之一.项目维护者在 2011 年、2021 年等阶段陆续交替,由 phihag、dstftw 等接手.2020 年,唱片业协会(RIAA)发起 DMCA 要求删除该项目,虽一度被移除,但在公众与 EFF 的推动下于当年 11 月恢复,并促使 GitHub 改进相关策略.
|
||||
`youtube-dl` 由 Ricardo García González 于 **2006 年**创建,最初仅支持 YouTube,随后扩展至其他网站,成为 GitHub 上最受欢迎的开源下载项目之一.项目维护者在 2011 年、2021 年等阶段陆续交替,由 phihag、dstftw 等接手.2020 年,唱片业协会(RIAA)发起 DMCA 要求删除该项目,虽一度被移除,但在公众与 EFF 的推动下于当年 11 月恢复,并促使 GitHub 改进相关策略.
|
||||
|
||||
- **停滞,youtube-dlc → yt-dlp 的诞生**
|
||||
随着开发进度放缓,社区于 2020 年衍生出 youtube-dlc 分支,随即在 **2021 年**演变为更活跃的 `yt-dlp` 项目,它继承了 youtube-dl 的核心功能,并引入更多改进,包括更好的格式选择、多线程下载等,迅速在 Linux 发行版中取代 youtube-dl (如 Ubuntu 22.04 之后).
|
||||
随着开发进度放缓,社区于 2020 年衍生出 youtube-dlc 分支,随即在 **2021 年**演变为更活跃的 `yt-dlp` 项目,它继承了 youtube-dl 的核心功能,并引入更多改进,包括更好的格式选择、多线程下载等,迅速在 Linux 发行版中取代 youtube-dl (如 Ubuntu 22.04 之后).
|
||||
|
||||
- **重构与功能拓展**
|
||||
`yt-dlp` 从 youtube-dlc 完全重构,新增许多 extractor(解析器)、改进配置与默认行为,还扩展了插件系统和兼容性支持.
|
||||
`yt-dlp` 从 youtube-dlc 完全重构,新增许多 extractor(解析器)、改进配置与默认行为,还扩展了插件系统和兼容性支持.
|
||||
|
||||
|
||||
## 各平台安装指南
|
||||
## 安装
|
||||
|
||||
- 通用(Linux/macOS/Windows)
|
||||
- Windows
|
||||
|
||||
下载官方最新可执行文件:
|
||||
|
||||
@@ -46,13 +47,19 @@ yt-dlp -U
|
||||
python3 -m pip install -U yt-dlp
|
||||
```
|
||||
|
||||
- Linux 发行版仓库
|
||||
|
||||
各发行版可能提供略滞后的 yt-dlp:
|
||||
- Linux 发行版
|
||||
|
||||
- Debian / Ubuntu:`sudo apt install yt-dlp`
|
||||
- Arch / Manjaro:`sudo pacman -S yt-dlp`
|
||||
- Fedora:`sudo dnf install yt-dlp` 等。
|
||||
- Fedora:`sudo dnf install yt-dlp`
|
||||
- Nixos:
|
||||
```
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
peazip
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
- Android(Termux)
|
||||
|
||||
@@ -163,28 +170,6 @@ yt-dlp "https://www.bilibili.com/video/BVxxxxx" --write-subs --embed-subs --sub-
|
||||
--sub-langs all,-live_chat: 下载所有字幕语言,但排除像“弹幕/实时聊天”之类的非标准字幕流
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 进阶技巧
|
||||
|
||||
- **FFmpeg 合并支持**:若视频与音频分离,需安装 FFmpeg 才能完成合并。
|
||||
|
||||
- **处理地理限制**:结合 `--proxy` 或 `--geo-bypass` 等选项使用 VPN/代理绕过区域限制。
|
||||
|
||||
- **应对下载失败(如 403)**:
|
||||
|
||||
```bash
|
||||
yt-dlp --rm-cache-dir
|
||||
```
|
||||
|
||||
- **设置 UA、Referer、打印请求头调试**:
|
||||
|
||||
```bash
|
||||
--add-headers "User-Agent: ..." --print http_headers
|
||||
```
|
||||
|
||||
- **Stability & 更新问题**:建议避免使用发行版中的旧版本,推荐使用官方可执行或 pip 方法。
|
||||
|
||||
---
|
||||
**Done.**
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
<link rel="alternate" type="text/html" href="https://blog.dich.bid/network-yt-dlp/"/>
|
||||
<id>https://blog.dich.bid/network-yt-dlp/</id>
|
||||
|
||||
<summary type="html"><p>前言 有时候我们想要视频保存到本地以便离线回看。yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。</p></summary>
|
||||
<summary type="html"><p>前言 yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。</p></summary>
|
||||
|
||||
</entry>
|
||||
<entry xml:lang="en">
|
||||
|
||||
@@ -119,8 +119,10 @@
|
||||
|
||||
|
||||
<div class="post-content">
|
||||
<p>前言 有时候我们想要视频保存到本地以便离线回看。yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。</p>
|
||||
<span id="continue-reading"></span><h2 id="li-shi-yan-ge-cong-youtube-dl-dao-yt-dlp">历史沿革:从 youtube-dl 到 yt-dlp</h2>
|
||||
<p>前言 yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。</p>
|
||||
<span id="continue-reading"></span>
|
||||
<p>有时候我们想要下载网络上的某些视频,比如Bilibili,YouTube等等,但它们没有提供下载按钮,这时候就可以用开源的yt-dlp来进行下载。和Aria2一样,很多下载软件的核心就是yt-dlp.</p>
|
||||
<h2 id="li-shi">历史</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<p><strong>起源与演进</strong>
|
||||
@@ -135,9 +137,9 @@
|
||||
<code>yt-dlp</code> 从 youtube-dlc 完全重构,新增许多 extractor(解析器)、改进配置与默认行为,还扩展了插件系统和兼容性支持.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="ge-ping-tai-an-zhuang-zhi-nan">各平台安装指南</h2>
|
||||
<h2 id="an-zhuang">安装</h2>
|
||||
<ul>
|
||||
<li>通用(Linux/macOS/Windows)</li>
|
||||
<li>Windows</li>
|
||||
</ul>
|
||||
<p>下载官方最新可执行文件:</p>
|
||||
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">sudo</span><span> curl</span><span style="color:#ffb964;"> -L</span><span> https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp</span><span style="color:#ffb964;"> -o</span><span> /usr/local/bin/yt-dlp
|
||||
@@ -152,10 +154,9 @@
|
||||
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">python3 -m</span><span> pip install</span><span style="color:#ffb964;"> -U</span><span> yt-dlp
|
||||
</span></code></pre>
|
||||
<ul>
|
||||
<li>Linux 发行版仓库</li>
|
||||
</ul>
|
||||
<p>各发行版可能提供略滞后的 yt-dlp:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>Linux 发行版</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Debian / Ubuntu:<code>sudo apt install yt-dlp</code></p>
|
||||
</li>
|
||||
@@ -163,12 +164,21 @@
|
||||
<p>Arch / Manjaro:<code>sudo pacman -S yt-dlp</code></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Fedora:<code>sudo dnf install yt-dlp</code> 等。</p>
|
||||
<p>Fedora:<code>sudo dnf install yt-dlp</code></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Android(Termux)</p>
|
||||
<p>Nixos:</p>
|
||||
</li>
|
||||
</ul>
|
||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>{pkgs, ...}: {
|
||||
</span><span> home.packages = with pkgs; [
|
||||
</span><span> peazip
|
||||
</span><span> ];
|
||||
</span><span>}
|
||||
</span></code></pre>
|
||||
<ul>
|
||||
<li>Android(Termux)</li>
|
||||
</ul>
|
||||
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">pkg</span><span> update && </span><span style="color:#ffb964;">pkg</span><span> upgrade
|
||||
</span><span style="color:#ffb964;">pkg</span><span> install python libexpat openssl ffmpeg
|
||||
</span><span style="color:#ffb964;">python3 -m</span><span> pip install</span><span style="color:#ffb964;"> -U</span><span> yt-dlp
|
||||
@@ -262,29 +272,6 @@
|
||||
</span><span>--sub-langs all,-live_chat: 下载所有字幕语言,但排除像“弹幕/实时聊天”之类的非标准字幕流
|
||||
</span></code></pre>
|
||||
<hr />
|
||||
<h2 id="jin-jie-ji-qiao">进阶技巧</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<p><strong>FFmpeg 合并支持</strong>:若视频与音频分离,需安装 FFmpeg 才能完成合并。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>处理地理限制</strong>:结合 <code>--proxy</code> 或 <code>--geo-bypass</code> 等选项使用 VPN/代理绕过区域限制。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>应对下载失败(如 403)</strong>:</p>
|
||||
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">yt-dlp --rm-cache-dir
|
||||
</span></code></pre>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>设置 UA、Referer、打印请求头调试</strong>:</p>
|
||||
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">--add-headers </span><span style="color:#556633;">"</span><span style="color:#99ad6a;">User-Agent: ...</span><span style="color:#556633;">"</span><span style="color:#ffb964;"> --print</span><span> http_headers
|
||||
</span></code></pre>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>Stability & 更新问题</strong>:建议避免使用发行版中的旧版本,推荐使用官方可执行或 pip 方法。</p>
|
||||
</li>
|
||||
</ul>
|
||||
<hr />
|
||||
<p><strong>Done.</strong></p>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
|
||||
|
||||
<div class="post-content">
|
||||
<p>前言 有时候我们想要视频保存到本地以便离线回看。yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。</p>
|
||||
<p>前言 yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。</p>
|
||||
</div>
|
||||
<div>
|
||||
<!-- ︎ -- force text style - some devices render this as emoji -->
|
||||
|
||||
Binary file not shown.
Binary file not shown.
BIN
public/pagefind/fragment/en_b7bbcc1.pf_fragment
Normal file
BIN
public/pagefind/fragment/en_b7bbcc1.pf_fragment
Normal file
Binary file not shown.
BIN
public/pagefind/fragment/en_ce42219.pf_fragment
Normal file
BIN
public/pagefind/fragment/en_ce42219.pf_fragment
Normal file
Binary file not shown.
Binary file not shown.
BIN
public/pagefind/index/en_4aff13a.pf_index
Normal file
BIN
public/pagefind/index/en_4aff13a.pf_index
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/pagefind/index/en_a1dd324.pf_index
Normal file
BIN
public/pagefind/index/en_a1dd324.pf_index
Normal file
Binary file not shown.
BIN
public/pagefind/index/en_c2cf247.pf_index
Normal file
BIN
public/pagefind/index/en_c2cf247.pf_index
Normal file
Binary file not shown.
BIN
public/pagefind/index/en_d814b28.pf_index
Normal file
BIN
public/pagefind/index/en_d814b28.pf_index
Normal file
Binary file not shown.
BIN
public/pagefind/index/en_ded48ad.pf_index
Normal file
BIN
public/pagefind/index/en_ded48ad.pf_index
Normal file
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
{"version":"1.3.0","languages":{"en":{"hash":"en_a5a6d11e14","wasm":"en","page_count":93}}}
|
||||
{"version":"1.3.0","languages":{"en":{"hash":"en_92c2735c2e","wasm":"en","page_count":93}}}
|
||||
BIN
public/pagefind/pagefind.en_92c2735c2e.pf_meta
Normal file
BIN
public/pagefind/pagefind.en_92c2735c2e.pf_meta
Normal file
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user