👾 Lux 是一个使用 Go 语言编写的快速简单的视频下载器。
以下依赖项是必需的,必须单独安装。
注意:FFmpeg 不影响下载,只影响最终文件的合并。
go install 安装要安装 Lux,请使用 go install,或从 Releases 页面下载二进制文件。
$ go install github.com/iawia002/lux@latest
对于 macOS 用户,您可以通过以下方式安装 lux:
$ brew install lux
对于 Arch 用户,可以使用 AUR 包。
对于 Void Linux 用户,您可以通过以下方式安装 lux:
$ xbps-install -S lux
$ scoop install lux
$ choco install lux
$ cask install github.com/iawia002/lux
用法:
lux [选项] URL [URL...]
$ lux "https://www.youtube.com/watch?v=dQw4w9WgXcQ" 网站: YouTube youtube.com 标题: Rick Astley - Never Gonna Give You Up (Video) 类型: 视频 流: [248] ------------------- 质量: 1080p video/webm; codecs="vp9" 大小: 63.93 MiB (67038963 字节) # 使用以下命令下载: lux -f 248 ... 41.88 MiB / 63.93 MiB [=================>-------------] 65.51% 4.22 MiB/s 00m05s
-i 选项显示所有可用的视频质量而不下载。
$ lux -i "https://www.youtube.com/watch?v=dQw4w9WgXcQ" 网站: YouTube youtube.com 标题: Rick Astley - Never Gonna Give You Up (Video) 类型: 视频 流: # 所有可用质量 [248] ------------------- 质量: 1080p video/webm; codecs="vp9" 大小: 49.29 MiB (51687554 字节) # 使用以下命令下载: lux -f 248 ... [137] ------------------- 质量: 1080p video/mp4; codecs="avc1.640028" 大小: 43.45 MiB (45564306 字节) # 使用以下命令下载: lux -f 137 ... [398] ------------------- 质量: 720p video/mp4; codecs="av01.0.05M.08" 大小: 37.12 MiB (38926432 字节) # 使用以下命令下载: lux -f 398 ... [136] ------------------- 质量: 720p video/mp4; codecs="avc1.4d401f" 大小: 31.34 MiB (32867324 字节) # 使用以下命令下载: lux -f 136 ... [247] ------------------- 质量: 720p video/webm; codecs="vp9" 大小: 31.03 MiB (32536181 字节) # 使用以下命令下载: lux -f 247 ...
使用 lux -f 流 "URL" 下载 -i 选项输出中列出的特定流。
如果向 Lux 提供特定资源的 URL,它将直接下载:
$ lux "https://img9.bcyimg.com/drawer/15294/post/1799t/1f5a87801a0711e898b12b640777720f.jpg" Lux 目前不支持此 URL,但它会尝试直接下载 网站: 通用 标题: 1f5a87801a0711e898b12b640777720f 类型: image/jpeg 流: [default] ------------------- 大小: 1.00 MiB (1051042 字节) # 使用以下命令下载: lux -f default "URL" 1.00 MiB / 1.00 MiB [===================================] 100.00% 1.21 MiB/s 0s
-p 选项下载整个播放列表而不是单个视频。
$ lux -i -p "https://www.bilibili.com/bangumi/play/ep198061" 网站: 哔哩哔哩 bilibili.com 标题: Doctor X 第四季:第一集 类型: 视频 可用流: # 所有可用画质 [默认] ------------------- 画质: 高清 1080P 大小: 845.66 MiB (886738354 字节) # 下载命令: lux -f default "URL" 网站: 哔哩哔哩 bilibili.com 标题: Doctor X 第四季:第二集 类型: 视频 可用流: # 所有可用画质 [默认] ------------------- 画质: 高清 1080P 大小: 930.71 MiB (975919195 字节) # 下载命令: lux -f default "URL" ...... 你可以使用 `-start`、`-end` 或 `-items` 选项来指定列表的下载范围:
-start 从播放列表中的第几个视频开始下载(默认为1) -end 下载到播放列表中的第几个视频结束 -items 指定要下载的播放列表视频项。用逗号分隔,如:1,5,6,8-10
仅适用于哔哩哔哩播放列表:
-eto 每个哔哩哔哩分集的文件名不包含播放列表标题
### 多个输入
你也可以一次下载多个URL:
```console
$ lux -i "https://www.bilibili.com/video/av21877586" "https://www.bilibili.com/video/av21990740"
网站: 哔哩哔哩 bilibili.com
标题: 【莓机会了】甜到虐哭的13集单集MAD「我现在什么都不想干,更不想看14集」
类型: 视频
可用流: # 所有可用画质
[默认] -------------------
画质: 高清 1080P
大小: 51.88 MiB (54403767 字节)
# 下载命令: lux -f default "URL"
网站: 哔哩哔哩 bilibili.com
标题: 【莓救了】甜到虐哭!!!国家队单集MAD-当熟悉的bgm响起,眼泪从脸颊滑下
类型: 视频
可用流: # 所有可用画质
[默认] -------------------
画质: 高清 1080P
大小: 77.63 MiB (81404093 字节)
# 下载命令: lux -f default "URL"
这些URL将会被逐一下载。
你也可以使用 -F 选项从文件中读取URL:
$ lux -F ~/Desktop/u.txt 网站: 微博 weibo.com 标题: 在Google,我们设计什么? via@阑夕 类型: 视频 流: [默认] ------------------- 大小: 19.19 MiB (20118196 字节) # 下载命令: lux -f default "URL" 19.19 MiB / 19.19 MiB [=================================] 100.00% 9.69 MiB/s 1秒 ......
你可以使用 -start、-end 或 -items 选项来指定文件中的下载范围:
-start
从文件的第几行开始下载(默认为1)
-end
下载到文件的第几行结束
-items
指定要下载的文件行。用逗号分隔,如:1,5,6,8-10
<kbd>Ctrl</kbd>+<kbd>C</kbd> 可以中断下载。
输出目录中会保留一个临时的 .download 文件。如果使用相同的参数再次运行 lux,下载将从上次的会话继续。
当下载失败时,lux 会自动重试,你可以通过 -retry 选项指定重试次数(默认为100次)。
如果访问视频需要 cookies,可以使用 -c 选项向 lux 提供 cookies。
Cookies 可以是以下格式或 Netscape Cookie 格式:
name=value; name2=value2; ...
Cookies 可以是字符串或文本文件,通过以下两种方式之一提供 cookies。
作为字符串:
$ lux -c "name=value; name2=value2" "https://www.bilibili.com/video/av20203945"
作为文本文件:
$ lux -c cookies.txt "https://www.bilibili.com/video/av20203945"
你可以通过环境变量设置 HTTP/SOCKS5 代理:
$ HTTP_PROXY="http://127.0.0.1:1087/" lux -i "https://www.youtube.com/watch?v=Gnbch2osEeo"
$ HTTP_PROXY="socks5://127.0.0.1:1080/" lux -i "https://www.youtube.com/watch?v=Gnbch2osEeo"
使用 --multi-thread 或 -m 选项启用多线程下载单个视频。
使用 --thread 或 -n 选项设置下载线程数(默认为10)。
注意:如果视频有多个片段,实际的下载线程数会增加。
例如:
- 如果
-n设置为 10,视频有 2 个片段,那么实际会使用 20 个线程。- 如果视频有 20 个片段,同时只下载 10 个片段,实际线程数为 100。
特别提示: 在下载 mgtv 时使用过多线程会导致 HTTP 403 错误,我们建议将线程数设置为 1。
你可以只使用 av 或 ep 号码来下载哔哩哔哩的视频:
$ lux -i ep198381 av21877586 网站: 哔哩哔哩 bilibili.com 标题: 狐妖小红娘:第79话 南国公主的吃货本色 类型: 视频 可用流: # 所有可用画质 [默认] ------------------- 画质: 高清 1080P 大小: 485.23 MiB (508798478 字节) # 下载命令: lux -f default "URL" 网站: 哔哩哔哩 bilibili.com 标题: 【莓机会了】甜到虐哭的13集单集MAD「我现在什么都不想干,更不想看14集」 类型: 视频 可用流: # 所有可用画质 [默认] ------------------- 画质: 高清 1080P 大小: 51.88 MiB (54403767 字节) # 下载命令: lux -f default "URL"
可以使用 -r 选项为请求指定 Referrer:
$ lux -r "https://www.bilibili.com/video/av20383055/" "http://cn-scnc1-dx.acgvideo.com/"
-o 选项设置路径,-O 选项设置下载文件的名称:
$ lux -o ../ -O "hello" "https://example.com"
-d 选项输出网络请求信息:
$ lux -i -d "http://www.bilibili.com/video/av20088587" URL: http://www.bilibili.com/video/av20088587 方法: GET 请求头: http.Header{ "Referer": {"http://www.bilibili.com/video/av20088587"}, "Accept": {"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, "Accept-Charset": {"UTF-8,*;q=0.5"}, "Accept-Encoding": {"gzip,deflate,sdch"}, "Accept-Language": {"en-US,en;q=0.8"}, "User-Agent": {"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"}, } 状态码: 200 URL: https://interface.bilibili.com/v2/playurl?appkey=84956560bc028eb7&cid=32782944&otype=json&qn=116&quality=116&type=&sign=fb2e3f261fec398652f96d358517e535 方法: GET 头部: http.Header{ "Accept-Charset": {"UTF-8,*;q=0.5"}, "Accept-Encoding": {"gzip,deflate,sdch"}, "Accept-Language": {"en-US,en;q=0.8"}, "User-Agent": {"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"}, "Referer": {"https://interface.bilibili.com/v2/playurl?appkey=84956560bc028eb7&cid=32782944&otype=json&qn=116&quality=116&type=&sign=fb2e3f261fec398652f96d358517e535"}, "Accept": {"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, } 状态码: 200 网站: 哔哩哔哩 bilibili.com 标题: 燃油动力的遥控奥迪R8跑赛道 类型: 视频 流: # 所有可用质量 [默认] ------------------- 质量: 高清 1080P 大小: 64.38 MiB (67504795 字节) # 下载命令: lux -f default "URL" ### 重复使用提取的数据 -j 选项将以 JSON 格式打印提取的数据。 ```控制台 $ lux -j "https://www.bilibili.com/video/av20203945" { "site": "哔哩哔哩 bilibili.com", "title": "【2018拜年祭单品】相遇day by day", "type": "视频", "streams": { "15": { "urls": [ { "url": "...", "size": 18355205, "ext": "flv" } ], "quality": "流畅 360P", "size": 18355205 }, "32": { "urls": [ { "url": "...", "size": 40058632, "ext": "flv" } ], "quality": "清晰 480P", "size": 40058632 }, "64": { "urls": [ { "url": "...", "size": 82691087, "ext": "flv" } ], "quality": "高清 720P", "size": 82691087 }, "80": { "urls": [ { "url": "...", "size": 121735559, "ext": "flv" } ], "quality": "高清 1080P", "size": 121735559 } } }
-i 仅显示信息
-F string
URL文件路径
-d 调试模式
-j 打印提取的数据
-s 最小输出
-v 显示版本
-f string
选择特定流下载
-p 下载播放列表
-n int
下载线程数(仅适用于多部分视频)(默认10)
-c string
Cookie
-r string
使用指定的引用页
-cs int
下载的HTTP块大小(MB)(默认1)
-retry int
下载失败时重试次数(默认10)
-start int
播放列表开始视频(默认1)
-end int
播放列表结束视频
-items string
要下载的播放列表视频项。用逗号分隔,如:1,5,6,8-10
-o string
指定输出路径
-O string
指定输出文件名
-C 下载字幕
-ccode string
优酷ccode(默认"0502")
-ckey string
优酷ckey(默认"7B19C0AB12633B22E7FE81271162026020570708D6CC189E4924503C49D243A0DE6CD84A766832C2C99898FC5ED31F3709BB3CDD82C96492E721BDD381735026")
-password string
优酷密码
注意:如果使用aria2下载,您需要自行合并多部分视频。
-aria2
使用Aria2 RPC下载
-aria2addr string
Aria2地址(默认"localhost:6800")
-aria2method string
Aria2方法(默认"http")
-aria2token string
Aria2 RPC令牌
优酷的 ccode 经常变化导致 lux 不可用,如果你知道有新的可用的 ccode,可以直接使用 lux -ccode ... 而不用等待 lux 更新(当然,也欢迎你给我们提一个 Pull request 来更新默认的 ccode)
最好是每次下载都附带登录过的 Cookie 以避免部分 ccode 的问题
西瓜/头条视频必须带 Cookie 才能下载成功,西瓜和头条可共用西瓜视频的 Cookie,Cookie 的有效期可能较短,下载失败就更新 Cookie 尝试:
$ lux -c "msToken=yoEh0-qLUq4obZ8Sfxsem_CxCo9R3NM6ViTrWaRcM1...; ttwid=1%7C..." "https://m.toutiao.com/is/iYbTfJ79/"
Lux 是一个开源项目,建立在开源项目之上。查看贡献指南以开始。
MIT
版权所有 (c) 2018-至今,iawia002


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频


实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。


选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。


像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。


AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。


一站式AI创作平台
提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

