diff --git a/content/Network-yt-dlp.md b/content/Network-yt-dlp.md index 314fa7d..5fd5aeb 100644 --- a/content/Network-yt-dlp.md +++ b/content/Network-yt-dlp.md @@ -6,26 +6,27 @@ date = 2025-04-12 tags = ["网络艺术"] +++ -前言 有时候我们想要视频保存到本地以便离线回看。yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。 +前言 yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。 +有时候我们想要下载网络上的某些视频,比如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.** diff --git a/public/atom.xml b/public/atom.xml index ae9e75b..2f07ce3 100644 --- a/public/atom.xml +++ b/public/atom.xml @@ -119,7 +119,7 @@ https://blog.dich.bid/network-yt-dlp/ - <p>前言 有时候我们想要视频保存到本地以便离线回看。yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。</p> + <p>前言 yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。</p> diff --git a/public/network-yt-dlp/index.html b/public/network-yt-dlp/index.html index af6073c..624b465 100644 --- a/public/network-yt-dlp/index.html +++ b/public/network-yt-dlp/index.html @@ -119,8 +119,10 @@
-

前言 有时候我们想要视频保存到本地以便离线回看。yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。

-

历史沿革:从 youtube-dl 到 yt-dlp

+

前言 yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。

+ +

有时候我们想要下载网络上的某些视频,比如Bilibili,YouTube等等,但它们没有提供下载按钮,这时候就可以用开源的yt-dlp来进行下载。和Aria2一样,很多下载软件的核心就是yt-dlp.

+

历史

-

各平台安装指南

+

安装

下载官方最新可执行文件:

sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
@@ -152,10 +154,9 @@
 
python3 -m pip install -U yt-dlp
 
    -
  • Linux 发行版仓库
  • -
-

各发行版可能提供略滞后的 yt-dlp:

-
    +
  • +

    Linux 发行版

    +
  • Debian / Ubuntu:sudo apt install yt-dlp

  • @@ -163,12 +164,21 @@

    Arch / Manjaro:sudo pacman -S yt-dlp

  • -

    Fedora:sudo dnf install yt-dlp 等。

    +

    Fedora:sudo dnf install yt-dlp

  • -

    Android(Termux)

    +

    Nixos:

+
{pkgs, ...}: {
+  home.packages = with pkgs; [
+    peazip
+  ];
+}
+
+
    +
  • Android(Termux)
  • +
pkg update && pkg upgrade
 pkg install python libexpat openssl ffmpeg
 python3 -m pip install -U yt-dlp
@@ -262,29 +272,6 @@
 --sub-langs all,-live_chat: 下载所有字幕语言,但排除像“弹幕/实时聊天”之类的非标准字幕流
 

-

进阶技巧

-
    -
  • -

    FFmpeg 合并支持:若视频与音频分离,需安装 FFmpeg 才能完成合并。

    -
  • -
  • -

    处理地理限制:结合 --proxy--geo-bypass 等选项使用 VPN/代理绕过区域限制。

    -
  • -
  • -

    应对下载失败(如 403)

    -
    yt-dlp --rm-cache-dir
    -
    -
  • -
  • -

    设置 UA、Referer、打印请求头调试

    -
    --add-headers "User-Agent: ..." --print http_headers
    -
    -
  • -
  • -

    Stability & 更新问题:建议避免使用发行版中的旧版本,推荐使用官方可执行或 pip 方法。

    -
  • -
-

Done.

diff --git a/public/page/2/index.html b/public/page/2/index.html index 08aa68b..425d775 100644 --- a/public/page/2/index.html +++ b/public/page/2/index.html @@ -122,7 +122,7 @@
-

前言 有时候我们想要视频保存到本地以便离线回看。yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。

+

前言 yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。

diff --git a/public/pagefind/fragment/en_109a394.pf_fragment b/public/pagefind/fragment/en_109a394.pf_fragment deleted file mode 100644 index cdc1330..0000000 Binary files a/public/pagefind/fragment/en_109a394.pf_fragment and /dev/null differ diff --git a/public/pagefind/fragment/en_24a0ddb.pf_fragment b/public/pagefind/fragment/en_24a0ddb.pf_fragment deleted file mode 100644 index b6aa148..0000000 Binary files a/public/pagefind/fragment/en_24a0ddb.pf_fragment and /dev/null differ diff --git a/public/pagefind/fragment/en_b7bbcc1.pf_fragment b/public/pagefind/fragment/en_b7bbcc1.pf_fragment new file mode 100644 index 0000000..c2a8ce5 Binary files /dev/null and b/public/pagefind/fragment/en_b7bbcc1.pf_fragment differ diff --git a/public/pagefind/fragment/en_ce42219.pf_fragment b/public/pagefind/fragment/en_ce42219.pf_fragment new file mode 100644 index 0000000..636f03a Binary files /dev/null and b/public/pagefind/fragment/en_ce42219.pf_fragment differ diff --git a/public/pagefind/index/en_1a222ef.pf_index b/public/pagefind/index/en_1a222ef.pf_index deleted file mode 100644 index 9534d77..0000000 Binary files a/public/pagefind/index/en_1a222ef.pf_index and /dev/null differ diff --git a/public/pagefind/index/en_4aff13a.pf_index b/public/pagefind/index/en_4aff13a.pf_index new file mode 100644 index 0000000..09b95be Binary files /dev/null and b/public/pagefind/index/en_4aff13a.pf_index differ diff --git a/public/pagefind/index/en_4fc9c25.pf_index b/public/pagefind/index/en_4fc9c25.pf_index deleted file mode 100644 index 1c2247b..0000000 Binary files a/public/pagefind/index/en_4fc9c25.pf_index and /dev/null differ diff --git a/public/pagefind/index/en_5b10636.pf_index b/public/pagefind/index/en_5b10636.pf_index deleted file mode 100644 index b6dce6d..0000000 Binary files a/public/pagefind/index/en_5b10636.pf_index and /dev/null differ diff --git a/public/pagefind/index/en_78d4526.pf_index b/public/pagefind/index/en_78d4526.pf_index deleted file mode 100644 index fc195de..0000000 Binary files a/public/pagefind/index/en_78d4526.pf_index and /dev/null differ diff --git a/public/pagefind/index/en_a1dd324.pf_index b/public/pagefind/index/en_a1dd324.pf_index new file mode 100644 index 0000000..dca47ab Binary files /dev/null and b/public/pagefind/index/en_a1dd324.pf_index differ diff --git a/public/pagefind/index/en_c2cf247.pf_index b/public/pagefind/index/en_c2cf247.pf_index new file mode 100644 index 0000000..d917d88 Binary files /dev/null and b/public/pagefind/index/en_c2cf247.pf_index differ diff --git a/public/pagefind/index/en_d814b28.pf_index b/public/pagefind/index/en_d814b28.pf_index new file mode 100644 index 0000000..87a33d8 Binary files /dev/null and b/public/pagefind/index/en_d814b28.pf_index differ diff --git a/public/pagefind/index/en_ded48ad.pf_index b/public/pagefind/index/en_ded48ad.pf_index new file mode 100644 index 0000000..50f9e97 Binary files /dev/null and b/public/pagefind/index/en_ded48ad.pf_index differ diff --git a/public/pagefind/index/en_e2ee7e8.pf_index b/public/pagefind/index/en_e2ee7e8.pf_index deleted file mode 100644 index f9d7bb0..0000000 Binary files a/public/pagefind/index/en_e2ee7e8.pf_index and /dev/null differ diff --git a/public/pagefind/pagefind-entry.json b/public/pagefind/pagefind-entry.json index a4816cb..b718b6b 100644 --- a/public/pagefind/pagefind-entry.json +++ b/public/pagefind/pagefind-entry.json @@ -1 +1 @@ -{"version":"1.3.0","languages":{"en":{"hash":"en_a5a6d11e14","wasm":"en","page_count":93}}} \ No newline at end of file +{"version":"1.3.0","languages":{"en":{"hash":"en_92c2735c2e","wasm":"en","page_count":93}}} \ No newline at end of file diff --git a/public/pagefind/pagefind.en_92c2735c2e.pf_meta b/public/pagefind/pagefind.en_92c2735c2e.pf_meta new file mode 100644 index 0000000..322083e Binary files /dev/null and b/public/pagefind/pagefind.en_92c2735c2e.pf_meta differ diff --git a/public/pagefind/pagefind.en_a5a6d11e14.pf_meta b/public/pagefind/pagefind.en_a5a6d11e14.pf_meta deleted file mode 100644 index b727b24..0000000 Binary files a/public/pagefind/pagefind.en_a5a6d11e14.pf_meta and /dev/null differ