lux 是做什么的?
👾 用 Go 编写的快速、简单的视频下载库与命令行工具
概述
Lux 是一个用 Go 语言编写的快速、简单的视频下载库和命令行工具,支持从多个主流的视频网站下载视频。
特性
- 快速: 使用 Go 的并发特性,支持多线程下载,速度非常快。
- 简单: 只需一条命令即可下载视频,无需复杂配置。
- 跨平台: 支持 Windows、macOS 和 Linux。
- 库与 CLI: 既可作为命令行工具使用,也可作为 Go 库集成到其他项目中。
安装
从源码安装
确保你已经安装了 Go 1.19 及以上版本,然后运行:
go install github.com/iawia002/lux@latest
使用预编译的二进制文件
从 Releases 页面下载对应平台的二进制文件,并添加到 PATH 中。
macOS Homebrew
brew install lux
使用
基本使用
下载一个视频:
lux https://www.youtube.com/watch?v=dQw4w9WgXcQ
下载多个视频
lux URL1 URL2 URL3
指定输出目录
lux -o /path/to/directory URL
列出可用的视频格式
lux -i URL
指定下载的视频格式
lux -f 137 URL # 137 是格式 ID
支持的网站
Lux 支持以下网站(持续更新中):
- YouTube
- Bilibili
- 抖音 (Douyin)
- 优酷 (Youku)
- 爱奇艺 (iQIYI)
- 腾讯视频 (Tencent Video)
- 芒果 TV (Mango TV)
- 微博 (Weibo)
- 以及更多...
作为库使用
在你的 Go 项目中,可以直接导入 lux 作为库使用:
import "github.com/iawia002/lux/downloader"
示例代码:
package main
import (
"github.com/iawia002/lux/downloader"
)
func main() {
// 使用下载器
d := downloader.New()
err := d.Download(ctx, "https://www.youtube.com/watch?v=dQw4w9WgXcQ")
if err != nil {
panic(err)
}
}
配置
Lux 支持通过命令行参数或配置文件进行配置。支持的配置项包括:
-o: 输出目录-f: 视频格式 ID-p: 代理地址-n: 线程数(并发下载数量)-c: Cookie 文件路径(用于需要登录的网站)-d: 调试模式
常见问题
下载失败怎么办?
- 确保网络连接正常。
- 尝试更新到最新版本。
- 如果某些网站需要登录,请使用
-c选项指定 Cookie 文件。
如何获取 Cookie?
在浏览器中登录目标网站,然后使用浏览器扩展(如 "Get cookies.txt")导出 Cookie 文件。
许可证
贡献
欢迎提交 Issue 和 Pull Request!请确保代码通过所有测试并遵循项目的代码风格。
鸣谢
- youtube-dl - 启发并提供了部分参考实现
- 所有贡献者和用户