Communitygithub.com

iawia002/lux

👾 用 Go 编写的快速、简单的视频下载库与命令行工具

lux 是什么?

Lux 是一个用 Go 语言开发的高性能视频下载库和命令行工具,专为需要从多个主流视频平台(如 YouTube、Bilibili、抖音、优酷等)下载视频的开发者与用户设计。其核心优势在于快速、简洁且跨平台支持:得益于 Go 的并发特性,Lux 能够高效解析视频流并分块下载,显著提升下载速度。同时,它提供简洁的 CLI 接口,支持一条命令完成下载,并能自动提取最佳画质和音质。作为库使用时,开发者可以轻松将其集成到自己的 Go 项目中,实现自定义的视频采集功能。Lux 无需复杂配置,开箱即用,是所有需要批量或单次下载网络视频的极佳选择。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add iawia002/lux

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

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: 调试模式

常见问题

下载失败怎么办?

  1. 确保网络连接正常。
  2. 尝试更新到最新版本。
  3. 如果某些网站需要登录,请使用 -c 选项指定 Cookie 文件。

如何获取 Cookie?

在浏览器中登录目标网站,然后使用浏览器扩展(如 "Get cookies.txt")导出 Cookie 文件。

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request!请确保代码通过所有测试并遵循项目的代码风格。

鸣谢

  • youtube-dl - 启发并提供了部分参考实现
  • 所有贡献者和用户

相关技能