add:yt-dlp

This commit is contained in:
dichgrem
2025-08-25 12:49:51 +08:00
parent f6543a51df
commit f0cbca1045
9 changed files with 284 additions and 5 deletions

View File

@@ -1,9 +1,9 @@
+++
title = "乱七八糟:Aria2各平台使用指南"
title = "网络艺术:Aria2使用指南"
date = 2025-04-15
[taxonomies]
tags = ["乱七八糟"]
tags = ["网络艺术"]
+++
前言 Aria2是一款开源、跨平台的命令行界面下载管理器常常被各种下载器软件使用。

View File

@@ -1,6 +1,6 @@
+++
title = "网络艺术:下载技术的历史"
date = 2024-02-09
date = 2025-04-11
[taxonomies]
tags = ["Network"]

View File

@@ -1,5 +1,5 @@
+++
title = "网络艺术:家庭组网方案与设备选购"
title = "家庭组网系列(1):方案与设备选购"
date = 2025-01-21
[taxonomies]

View File

@@ -0,0 +1,89 @@
+++
title = "家庭组网系列(2):路由器性能测试"
date = 2025-01-22
[taxonomies]
tags = ["Network"]
+++
前言 本文介绍常用的家庭网络测试方法,包括开源固件和闭源商用设备的测试。
<!-- more -->
随着Wi-Fi7设备的逐渐普及和家用路由器的性能提升百元以内的wifi6路由器性价比变得非常高可以用非常少的预算搭建高速网络然而即使是同样的方案各家路由器的实际体验却不一致因此这里记载一些测试路由器性能的方法。
开源固件如OpenWrt无论是软路由还是硬路由都很方便测试。为了方便测试我们假设你的网络拓扑为简单的光猫+无线路由器;实际使用中自上而下的,运营商的套餐带宽/限速/QOS设备的转发性能和网线/网卡的质量都会引起整个网络的波动。
## 性能指标
| 指标 | 含义 |
| --------------- | --------------- |
| 吞吐量Throughput | 最大数据传输速度 |
| 延迟 / 抖动 | 延迟和波动情况 |
| 转发性能 / pps | 每秒能转发多少数据包 |
| 并发连接数 | 同时建立多少TCP连接 |
| NAT / 防火墙性能 | 打开转发、NAT、规则后的性能 |
## 带宽
带宽,也叫吞吐量,是我们最为关心的一个性能指标之一。
理论上1000兆宽带的极限下载速度为125MB每秒实际上日常生活中少有跑满带宽的使用情况毕竟商用服务器的带宽成本高比如B站的视频降码率等等。对于极客玩家来说内网文件共享游戏串流NAS服务和外网多线程下载BT下载等等需要比较高的带宽性能。以下是一些常见的测试方法
开源固件可以使用[iperf3](https://github.com/esnet/iperf)来测试。
在路由器A上和设备B上安装iperf3,openwrt为``opkg install iperf3``随后在A上使用命令``iperf3 -s``开启服务端在B上使用命令``iperf3 -c <A的IP>``,即可测试B到A的TCP单线程上传速率(本地带宽)应该和A的物理端口速率相近。若要测试下载速率``iperf3 -c <A的IP> -R``即可。
TCP单线程下载测试示例
![iperf3.webp](/images/iperf3.webp)
如果你的路由器为闭源固件,也可以到在线测速站进行简单测试:
- [测速网:speedtest.cn](https://www.speedtest.cn/)
- [中国科学技术大学测速网站](https://test.ustc.edu.cn/)
- [Netflix运营的fast.com](fast.com)
- [Openspeedtest](https://openspeedtest.com/)
- [Cloudflare测速](https://speed.cloudflare.com/)
这些网站的测试速度随着节点的不同而有所差异比如测试节点在北京联通而你是广东电信会和实际差距较大。当然还有一个简单权威的方法就是下载一个Steam上的大型游戏Steam的节点在任何国家基本都可以跑满。
## 延迟与抖动
简单的ping命令即可测试延迟对网络排除故障很有帮助。ping命令是一个广泛使用的命令在各种系统上都有。
使用``ping <目标IP> -c 20``命令进行测试可以看到min/avg/max三个值即为最小/平均/最大延迟;
![ping](/images/ping.webp)
也可以使用iperf3来测试UDP抖动使用命令``iperf3 -c <server_ip> -u -b 100M -t 10``-u表示使用udp-100M表示使用100兆带宽可逐渐调高并接近极限性能。
![iperf3-udp](/images/iperf3-udp.webp)
## 转发
路由器的CPU作为核心需要处理外网与内网IP的转发这种转发能力称为包转发率通常拿小包的转发率来衡量能力的高低。测试“小包转发能力”其实就是测试 PPSPackets Per Second能力,在x86软路由上面这个性能尤为重要因为无线路由器有硬件级别的加速芯片而软路由没有。
> 以单位时间内发送64byte的数据包最小包的个数作为计算基准的。对于千兆以太网来说计算方法如下1000000000bps/8bit/64812byte=1,488,095pps,说明当以太网帧为64byte时需考虑8byte的帧头和12byte的帧间隙的固定开销。故一个线速的千兆以太网端口在转发64byte包时的包转发率为1.488Mpps
测试转发性能需要发包-转发-收包三台设备或者使用环回测试仪。由于iperf3 处于 TCP/UDP 层,包也会变大且加了协议头,测试的结果误差很大,因此不建议用其进行测试小包性能。
---
未完待续。

190
content/Network-yt-dlp.md Normal file
View File

@@ -0,0 +1,190 @@
+++
title = "网络艺术:Yt-dlp使用指南"
date = 2025-04-12
[taxonomies]
tags = ["网络艺术"]
+++
前言 有时候我们想要视频保存到本地以便离线回看。yt-dlp是一款功能强大的命令行工具专注于下载视频与音频内容支持数千个平台是开源下载工具爱好者的常用选择。
<!-- more -->
## 历史沿革:从 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-dlc → yt-dlp 的诞生**
随着开发进度放缓,社区于 2020 年衍生出 youtube-dlc 分支,随即在 **2021 年**演变为更活跃的 `yt-dlp` 项目,它继承了 youtube-dl 的核心功能,并引入更多改进,包括更好的格式选择、多线程下载等,迅速在 Linux 发行版中取代 youtube-dl (如 Ubuntu 22.04 之后).
- **重构与功能拓展**
`yt-dlp` 从 youtube-dlc 完全重构,新增许多 extractor解析器、改进配置与默认行为还扩展了插件系统和兼容性支持.
## 各平台安装指南
- 通用Linux/macOS/Windows
下载官方最新可执行文件:
```bash
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp
````
更新版本:
```bash
yt-dlp -U
```
- Python Pip 安装
```bash
python3 -m pip install -U yt-dlp
```
- Linux 发行版仓库
各发行版可能提供略滞后的 yt-dlp
- Debian / Ubuntu`sudo apt install yt-dlp`
- Arch / Manjaro`sudo pacman -S yt-dlp`
- Fedora`sudo dnf install yt-dlp` 等。
- AndroidTermux
```bash
pkg update && pkg upgrade
pkg install python libexpat openssl ffmpeg
python3 -m pip install -U yt-dlp
```
## 常用命令
- **下载视频**
```bash
yt-dlp "视频链接"
```
- **提取为 MP3 音频**
```bash
yt-dlp -x --audio-format mp3 "视频链接"
```
- **下载播放列表**
```bash
yt-dlp -i "播放列表链接"
```
- **批量处理(文件或多个 URL**
```bash
yt-dlp -a urls.txt
```
- **选择格式下载**
```bash
yt-dlp -F "视频链接" # 显示所有格式
yt-dlp -f 137+140 "链接" # 下载指定视频 + 音频合并
```
- **自定义输出路径与模板**
```bash
yt-dlp -o '%(title)s by %(uploader)s on %(upload_date)s.%(ext)s'
```
- **日期过滤**
```bash
yt-dlp --dateafter 20230101 --datebefore 20231231 "链接"
```
- **速度限制 / 恢复下载 / 年龄筛选**
```bash
-r 500K # 限速
-c # 断点续传
--age-limit 18 # 仅下载适合年龄 ≥18 的视频
```
- **只输出描述,不下载内容**
```bash
yt-dlp --skip-download "链接"
```
- **下载封面、字幕、缩略图、元数据等**
```bash
--write-thumbnail --write-sub --embed-subs --embed-thumbnail
```
- **使用浏览器 Cookies 下载私密内容**
```bash
--cookies your-cookies.txt
--cookies-from-browser firefox
```
- **并行下载示例Hacker News 用户提供)**
```bash
yt-dlp --flat-playlist --print id playlist_url | \
parallel yt-dlp -x --wait-for-video 3 --download-archive archive.txt https://www.youtube.com/watch?v={}
```
- **记录下载历史**
```bash
yt-dlp --download-archive archive.txt "链接"
```
- **配置文件设定默认参数**
在 `~/.config/yt-dlp/config` 文件中添加习惯参数,如下载路径、格式偏好等。
- **比如下载B站带字幕视频的命令**:
```
yt-dlp "https://www.bilibili.com/video/BVxxxxx" --write-subs --embed-subs --sub-langs all,-live_chat
--write-subs: 将字幕文件下载为单独文件 (如 .vtt 或 .ass)
--embed-subs: 将下载的字幕嵌入到视频文件中(如果格式支持)
--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.**

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

BIN
static/images/iperf3.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

BIN
static/images/ping.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB