# KS-Downloader **Repository Path**: yonglelolu/KS-Downloader ## Basic Information - **Project Name**: KS-Downloader - **Description**: GitHub 同步仓库:快手(KuaiShou)无水印视频/图片下载工具;数据采集工具 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: https://github.com/JoeanAmier/KS-Downloader - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 2 - **Created**: 2024-04-10 - **Last Updated**: 2025-08-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
前往 bilibili 观看演示;前往 YouTube 观看演示
⭐ Mac OS、Windows 10 及以上用户可前往 Releases 或者 Actions 下载程序压缩包,解压后打开程序文件夹,双击运行 main
即可使用!
⭐ 本项目包含自动构建可执行文件的 GitHub Actions,使用者可以随时使用 GitHub Actions 将最新源码构建为可执行文件!
⭐ 自动构建可执行文件教程请查阅本文档的 构建可执行文件指南
部分;如果需要更加详细的图文教程,请 查阅文章!
注意:Mac OS 平台可执行文件 main
可能需要从终端命令行启动;受设备限制,Mac OS 平台可执行文件尚未经过测试,无法保证可用性!
若通过此方式使用程序,文件默认下载路径为:.\_internal\Volume\Download
;配置文件路径为:.\_internal\Volume\config.yaml
方案一:下载并解压文件,将旧版本的 _internal\Volume
文件夹复制到新版本的 _internal
文件夹。
方案二:下载并解压文件(不要运行程序),复制全部文件,直接覆盖旧版本文件。
3.12
的 Python 解释器3.12
的 Python 解释器pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
命令安装程序所需模块main.py
即可使用Dockerfile
文件构建镜像docker pull joeanamier/ks-downloader
命令拉取镜像docker pull ghcr.io/joeanamier/ks-downloader
命令拉取镜像docker run --name 容器名称(可选) -p 主机端口号:5557 -v ks_downloader_volume:/app/Volume -it <镜像名称>
docker run --name 容器名称(可选) -p 主机端口号:5557 -v ks_downloader_volume:/app/Volume -it <镜像名称> python main.py api
<镜像名称>
需与您在第一步中使用的镜像名称保持一致(joeanamier/ks-downloader
或 ghcr.io/joeanamier/ks-downloader
)
docker start -i 容器名称/容器 ID
docker restart -i 容器名称/容器 ID
Docker 运行项目时不支持 从浏览器读取 Cookie,无法使用 监听剪贴板 功能,可以正常粘贴内容,其他功能如有异常请反馈!
启动:运行命令:python .\main.py api
关闭:按下 Ctrl
+ C
关闭服务器
访问 http://127.0.0.1:5557/docs
或者 http://127.0.0.1:5557/redoc
;你会看到自动生成的交互式 API 文档!
https://www.kuaishou.com/f/分享码
https://v.kuaishou.com/分享码
https://www.kuaishou.com/short-video/作品ID
https://kuaishou.cn/short-video/作品ID
https://live.kuaishou.com/u/作者ID/作品ID
推荐使用分享链接;支持单次输入多个作品链接,链接之间使用空格分隔。
⭐ 推荐使用 Windows 终端 (Windows 11 默认终端)运行程序以便获得最佳显示效果!
./Volume/Data/DetailData.db
文件./Volume/KS-Downloader.db
文件./source/tools/sleep.py
项目根目录下的 config.yaml
文件,首次运行自动生成,可以自定义部分运行参数。
如果项目功能无法正常使用,请尝试配置 Cookie 后再使用!
参数 | 类型 | 含义 | 默认值 |
---|---|---|---|
mapping_data | str: str | #作者别名映射表,格式:作者ID: 作者别名 |
无 |
work_path | str | 作品数据 / 文件保存根路径 | 项目根路径/Volume |
folder_name | str | 作品文件储存文件夹名称 | Download |
name_format | str | 作品文件名称格式,使用空格分隔字段;支持字段:作品类型 、作者昵称 、作者ID 、作品描述 、作品ID 、发布日期 |
发布日期 作者昵称 作品描述 |
name_length | int | 作品文件名称长度限制,超出限制的文本将被截断,设置过大的值时请确保系统支持此长度 | 128 |
cookie | str | 快手网页版 Cookie,无需登录 | 动态获取 |
proxy | str | 设置程序代理 | null |
data_record | bool | 是否保存作品数据至文件,文件类型:SQLite |
false |
max_workers | int | 同时下载作品文件的最大任务数 | 4 |
str | 作品封面下载格式,支持:JPEG 、WEBP ;设置为空字符串代表不下载 |
空字符串 | |
bool | 是否下载作品音乐 | false | |
max_retry | int | 请求数据失败时,重试的最大次数,单位:秒 | 5 |
timeout | int | 请求数据超时限制,单位:秒 | 10 |
user_agent | str | 浏览器 User Agent | 默认 UA |
chunk | int | 下载文件时,每次从服务器获取的数据块大小,单位:字节 | 2097152(2 MB) |
folder_mode | bool | 是否将每个作品的文件储存至单独的文件夹;文件夹名称与文件名称保持一致 | false |
author_archive | bool | #是否将每个作者的作品储存至单独的文件夹;文件夹名称格式:作者ID_作者昵称 |
false |
✨ 作者的其他开源项目:
如果 KS-Downloader 对您有帮助,请考虑为它点个 Star ⭐,感谢您的支持!
微信(WeChat) | 支付宝(Alipay) |
---|---|
![]() |
![]() |
如果您愿意,可以考虑提供资助为 KS-Downloader 提供额外的支持!
# 🌟 贡献指南 **欢迎对本项目做出贡献!为了保持代码库的整洁、高效和易于维护,请仔细阅读以下指南,以确保您的贡献能够顺利被接受和整合。** * 在开始开发前,请从 `develop` 分支拉取最新的代码,以此为基础进行修改;这有助于避免合并冲突并保证您的改动基于最新的项目状态。 * 如果您的更改涉及多个不相关的功能或问题,请将它们分成多个独立的提交或拉取请求。 * 每个拉取请求应尽可能专注于单一功能或修复,以便于代码审查和测试。 * 遵循现有的代码风格;请确保您的代码与项目中已有的代码风格保持一致;建议使用 Ruff 工具保持代码格式规范。 * 编写可读性强的代码;添加适当的注释帮助他人理解您的意图。 * 每个提交都应该包含一个清晰、简洁的提交信息,以描述所做的更改。提交信息应遵循以下格式:`<类型>: <简短描述>` * 当您准备提交拉取请求时,请优先将它们提交到 `develop` 分支;这是为了给维护者一个缓冲区,在最终合并到 `master` 分支之前进行额外的测试和审查。 * 建议在开发前或遇到疑问时与作者沟通,确保开发方向一致,避免重复劳动或无效提交。 **参考资料:** * [贡献者公约](https://www.contributor-covenant.org/zh-cn/version/2/1/code_of_conduct/) * [如何为开源做贡献](https://opensource.guide/zh-hans/how-to-contribute/) # 💡 项目参考 * https://github.com/moyada/stealer * https://github.com/encode/httpx/ * https://github.com/Textualize/rich * https://github.com/Tinche/aiofiles * https://github.com/omnilib/aiosqlite * https://github.com/pyinstaller/pyinstaller * https://github.com/thewh1teagle/rookie * https://github.com/lxml/lxml * https://github.com/yaml/pyyaml * https://github.com/carpedm20/emoji/