Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joeanamier/ks-downloader
快手无水印视频/图片下载工具
https://github.com/joeanamier/ks-downloader
aiofiles httpx kuaishou linux macos rich sqlite windows
Last synced: 1 day ago
JSON representation
快手无水印视频/图片下载工具
- Host: GitHub
- URL: https://github.com/joeanamier/ks-downloader
- Owner: JoeanAmier
- License: gpl-3.0
- Created: 2024-04-09T14:44:12.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-09-26T15:06:31.000Z (4 months ago)
- Last Synced: 2024-10-14T08:28:24.295Z (3 months ago)
- Topics: aiofiles, httpx, kuaishou, linux, macos, rich, sqlite, windows
- Language: Python
- Homepage:
- Size: 1.06 MB
- Stars: 226
- Watchers: 4
- Forks: 50
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
KS-Downloader
🔥 快手作品下载工具:完全免费开源,基于 HTTPX 模块实现,下载快手无水印视频、图片文件!
⭐ 本项目完全免费开源,无任何收费功能,请勿上当受骗!
📑 项目功能
- ✅ 下载快手无水印作品文件
- ☑️ 下载快手作品封面图片
- ☑️ 下载快手作品音乐文件
- ✅ 自动跳过已下载的作品文件
- ✅ 作品文件完整性处理机制
- ✅ 持久化储存作品信息至文件
- ✅ 记录已下载作品 ID
- ✅ 支持文件断点续传下载
- ✅ 作品文件储存至单独文件夹
- ✅ 自定义作品文件名称格式
- ✅ 从浏览器读取 Cookie
- ☑️ 后台监听剪贴板下载作品
- ☑️ 支持命令行下载作品文件
- ☑️ 支持 API 调用功能
⭐ KS-Downloader 开发计划及进度可前往 Projects 查阅
📸 程序截图
🎥 点击图片观看演示视频
🥣 使用方法
🖱 程序运行
⭐ Mac OS、Windows 10 及以上用户可前往 Releases 下载程序压缩包,解压后打开程序文件夹,双击运行 main
即可使用。
⭐ 本项目包含手动构建可执行文件的 GitHub Actions,使用者可以随时使用 GitHub Actions 将最新源码构建为可执行文件!
注意:Mac OS 平台可执行文件 main
可能需要从终端命令行启动;受设备限制,Mac OS 平台可执行文件尚未经过测试,无法保证可用性!
若通过此方式使用程序,文件默认下载路径为:.\_internal\Download
;配置文件路径为:.\_internal\config.yaml
程序更新
方案一: 下载并解压文件,将旧版本的 KS-Downloader.db
文件和 config.yaml
文件复制到 _internal
文件夹。
方案二: 下载并解压文件(不要运行程序),复制全部文件,直接覆盖旧版本文件。
⌨️ 源码运行
- 安装版本号不低于
3.12
的 Python 解释器 )
- 安装版本号为
3.12
的 Python 解释器 - 下载本项目最新的源码或 Releases 发布的源码至本地
- 打开终端,切换至项目根路径
- 运行
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
命令安装程序所需模块 - 运行
main.py
即可使用
[//]: # (
⌨️ Docker 运行
- 获取镜像
- 方式一:使用
Dockerfile
文件构建镜像 - 方式二:使用
docker pull joeanamier/ks-downloader
命令拉取镜像 - 创建容器:
docker run -it joeanamier/ks-downloader
- 运行容器
- 启动容器:
docker start -i 容器名称/容器 ID
- 重启容器:
docker restart -i 容器名称/容器 ID
- 启动容器:
Docker 运行项目时不支持 从浏览器读取 Cookie,无法使用 监听剪贴板 功能,可以正常粘贴内容,其他功能如有异常请反馈!
🔗 支持链接
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 默认终端)运行程序以便获得最佳显示效果!
📜 其他说明
- Windows 系统需要以管理员身份运行程序才能读取 Chromium、Chrome、Edge 浏览器 Cookie
- 如果开启保存作品数据至文件功能,作品数据默认储存至
./Data/DetailData.db
文件 - 程序设置、下载记录数据储存至
./KS-Downloader.db
文件
⚙️ 配置文件
项目根目录下的 config.yaml
文件,首次运行自动生成,可以自定义部分运行参数。
如果项目功能无法正常使用,请尝试配置 Cookie 后再使用!
参数
类型
含义
默认值
work_path
str
作品数据 / 文件保存根路径
项目根路径
folder_name
str
作品文件储存文件夹名称
Download
name_format
str
作品文件名称格式,使用空格分隔字段;支持字段:作品类型
、作者昵称
、作者ID
、作品描述
、作品ID
、发布日期
发布日期 作者昵称 作品描述
cookie
str
快手网页版 Cookie,无需登录
动态获取
proxy
str
设置程序代理
null
data_record
bool
是否保存作品数据至文件,文件类型:SQLite
false
max_workers
int
同时下载作品文件的最大任务数
4
cover
str
作品封面下载格式,支持:JPEG
、WEBP
;设置为空字符串代表不下载
空字符串
music
bool
是否下载作品音乐
false
max_retry
int
请求数据失败时,重试的最大次数,单位:秒
5
timeout
int
请求数据超时限制,单位:秒
10
chunk
int
下载文件时,每次从服务器获取的数据块大小,单位:字节
2097152(2 MB)
folder_mode
bool
是否将每个作品的文件储存至单独的文件夹;文件夹名称与文件名称保持一致
false
# 📦 手动构建可执行文件指南
本指南将引导您通过 Fork 本仓库并执行 GitHub Actions 自动完成基于最新源码的程序构建和打包!
---
## 使用步骤
### 1. Fork 本仓库
1. 点击项目仓库右上角的 **Fork** 按钮,将本仓库 Fork 到您的个人 GitHub 账户中
2. 您的 Fork 仓库地址将类似于:`https://github.com/your-username/this-repo`
---
### 2. 启用 GitHub Actions
1. 前往您 Fork 的仓库页面
2. 点击顶部的 **Settings** 选项卡
3. 点击右侧的 **Actions** 选项卡
4. 点击 **General** 选项
5. 在 **Actions permissions** 下,选择 **Allow all actions and reusable workflows** 选项,点击 **Save** 按钮
---
### 3. 手动触发打包流程
1. 在您 Fork 的仓库中,点击顶部的 **Actions** 选项卡
2. 找到名为 **手动构建可执行文件** 的工作流
3. 点击右侧的 **Run workflow** 按钮:
- 选择 **master** 或者 **develop** 分支
- 点击 **Run workflow**
---
### 4. 查看打包进度
1. 在 **Actions** 页面中,您可以看到触发的工作流运行记录
2. 点击运行记录,查看详细的日志以了解打包进度和状态
---
### 5. 下载打包结果
1. 打包完成后,进入对应的运行记录页面
2. 在页面底部的 **Artifacts** 部分,您将看到打包的结果文件
3. 点击下载并保存到本地,即可获得打包好的程序
---
## 注意事项
1. **资源使用**:
- Actions 的运行环境由 GitHub 免费提供,普通用户每月有一定的免费使用额度(2000 分钟)
2. **代码修改**:
- 您可以自由修改 Fork 仓库中的代码以定制程序打包流程
- 修改后重新触发打包流程,您将得到自定义的构建版本
3. **与主仓库保持同步**:
- 如果主仓库更新了代码或工作流,建议您定期同步 Fork 仓库以获取最新功能和修复
---
## Actions 常见问题
### Q1: 为什么我无法触发工作流?
A: 请确认您已按照步骤 **启用 Actions**,否则 GitHub 会禁止运行工作流
### Q2: 打包流程失败怎么办?
A:
- 检查运行日志,了解失败原因
- 确保代码没有语法错误或依赖问题
- 如果问题仍未解决,可以在本仓库的 [Issues 页面](https://github.com/JoeanAmier/XHS-Downloader/issues) 提出问题
### Q3: 我可以直接使用主仓库的 Actions 吗?
A: 由于权限限制,您无法直接触发主仓库的 Actions。请通过 Fork 仓库的方式执行打包流程
# ⚠️ 免责声明\(Disclaimers\)
- 使用者对本项目的使用由使用者自行决定,并自行承担风险。作者对使用者使用本项目所产生的任何损失、责任、或风险概不负责。
- 本项目的作者提供的代码和功能是基于现有知识和技术的开发成果。作者尽力确保代码的正确性和安全性,但不保证代码完全没有错误或缺陷。
- 使用者在使用本项目时必须严格遵守 GNU
General Public License v3.0 的要求,并在适当的地方注明使用了 GNU General Public License
v3.0 的代码。 - 使用者在任何情况下均不得将本项目的作者、贡献者或其他相关方与使用者的使用行为联系起来,或要求其对使用者使用本项目所产生的任何损失或损害负责。
- 使用者在使用本项目的代码和功能时,必须自行研究相关法律法规,并确保其使用行为合法合规。任何因违反法律法规而导致的法律责任和风险,均由使用者自行承担。
- 本项目的作者不会提供 KS-Downloader 项目的付费版本,也不会提供与 KS-Downloader 项目相关的任何商业服务。
- 基于本项目进行的任何二次开发、修改或编译的程序与原创作者无关,原创作者不承担与二次开发行为或其结果相关的任何责任,使用者应自行对因二次开发可能带来的各种情况负全部责任。
在使用本项目的代码和功能之前,请您认真考虑并接受以上免责声明。如果您对上述声明有任何疑问或不同意,请不要使用本项目的代码和功能。如果您使用了本项目的代码和功能,则视为您已完全理解并接受上述免责声明,并自愿承担使用本项目的一切风险和后果。
# ✉️ 联系作者\(Contact\)
- 作者邮箱:[email protected]
- 作者微信: Downloader_Tools
- 微信公众号: Downloader Tools
-
Discord 社区: 点击加入社区
✨ 作者的其他开源项目:
-
TikTokDownloader(抖音、TikTok):https://github.com/JoeanAmier/TikTokDownloader -
XHS-Downloader(小红书):https://github.com/JoeanAmier/XHS-Downloader
# ♥️ 支持项目\(Support\)
如果 KS-Downloader 对您有帮助,请考虑为它点个 Star ⭐,感谢您的支持!
微信(WeChat)
支付宝(Alipay)
如果您愿意,可以考虑提供资助为 KS-Downloader 提供额外的支持!
# 🌟 贡献指南\(Contribute\)
**欢迎对本项目做出贡献!为了保持代码库的整洁、高效和易于维护,请仔细阅读以下指南,以确保您的贡献能够顺利被接受和整合。**
* 在开始开发前,请从 `develop` 分支拉取最新的代码,以此为基础进行修改;这有助于避免合并冲突并保证您的改动基于最新的项目状态。
* 如果您的更改涉及多个不相关的功能或问题,请将它们分成多个独立的提交或拉取请求。
* 每个拉取请求应尽可能专注于单一功能或修复,以便于代码审查和测试。
* 遵循现有的代码风格;请确保您的代码与项目中已有的代码风格保持一致。
* 编写可读性强的代码;添加适当的注释帮助他人理解您的意图。
* 每个提交都应该包含一个清晰、简洁的提交信息,以描述所做的更改。提交信息应遵循以下格式:`<类型>: <简短描述>`
* 当您准备提交拉取请求时,请优先将它们提交到 `develop` 分支;这是为了给维护者一个缓冲区,在最终合并到 `master`
分支之前进行额外的测试和审查。
**参考资料:**
* [贡献者公约](https://www.contributor-covenant.org/zh-cn/version/2/1/code_of_conduct/)
* [如何为开源做贡献](https://opensource.guide/zh-hans/how-to-contribute/)
# 💰 项目赞助\(Sponsor\)
![PyCharm logo](https://resources.jetbrains.com/storage/products/company/brand/logos/PyCharm.svg)
**JetBrains** 支持全球开源社区认可的活跃项目,并为非商业开发提供免费许可证。
# 💡 项目参考\(Refer\)
* 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/