{"id":14985030,"url":"https://github.com/joeanamier/tiktokdownloader","last_synced_at":"2026-10-18T22:01:57.120Z","repository":{"id":176448828,"uuid":"549007739","full_name":"JoeanAmier/TikTokDownloader","owner":"JoeanAmier","description":"抖音 / TikTok 平台作品下载/数据采集工具","archived":false,"fork":false,"pushed_at":"2026-09-22T13:49:13.000Z","size":28911,"stargazers_count":16830,"open_issues_count":45,"forks_count":2827,"subscribers_count":98,"default_branch":"master","last_synced_at":"2026-10-14T11:53:34.408Z","etag":null,"topics":["api","csv","docker","douyin","downloader","ffmpeg","httpx","linux","macos","pyinstaller","python","rich","server","sqlite","tiktok","windows","xlsx"],"latest_commit_sha":null,"homepage":"https://discord.com/invite/ZYtmgKud9Y","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JoeanAmier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2022-10-10T14:27:36.000Z","updated_at":"2026-10-14T11:41:42.000Z","dependencies_parsed_at":"2026-09-07T08:56:42.895Z","dependency_job_id":null,"html_url":"https://github.com/JoeanAmier/TikTokDownloader","commit_stats":{"total_commits":1636,"total_committers":3,"mean_commits":545.3333333333334,"dds":"0.0012224938875305957","last_synced_commit":"56b4f6527acbc7bcea6e94d4d76548e65aeb3cc3"},"previous_names":["joeanamier/tiktokdownloader"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/JoeanAmier/TikTokDownloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeanAmier%2FTikTokDownloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeanAmier%2FTikTokDownloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeanAmier%2FTikTokDownloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeanAmier%2FTikTokDownloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JoeanAmier","download_url":"https://codeload.github.com/JoeanAmier/TikTokDownloader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoeanAmier%2FTikTokDownloader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38342694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-18T02:00:06.448Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","csv","docker","douyin","downloader","ffmpeg","httpx","linux","macos","pyinstaller","python","rich","server","sqlite","tiktok","windows","xlsx"],"created_at":"2024-09-24T14:10:08.500Z","updated_at":"2026-10-18T22:01:57.108Z","avatar_url":"https://github.com/JoeanAmier.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"./static/images/DouK-Downloader.png\" alt=\"DouK-Downloader\" height=\"256\" width=\"256\"\u003e\u003cbr\u003e\n\u003ch1\u003eDouK-Downloader\u003c/h1\u003e\n\u003cp\u003e简体中文 | \u003ca href=\"README_EN.md\"\u003eEnglish\u003c/a\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n \u003ca href=\"https://www.star-history.com/joeanamier/tiktokdownloader\"\u003e\n  \u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/badge?repo=JoeanAmier/TikTokDownloader\u0026type=rank\u0026theme=dark\" /\u003e\u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/badge?repo=JoeanAmier/TikTokDownloader\u0026type=rank\" /\u003e\u003cimg alt=\"Star History Rank\" src=\"https://api.star-history.com/badge?repo=JoeanAmier/TikTokDownloader\u0026type=rank\" /\u003e\u003c/picture\u003e \u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/badge?repo=JoeanAmier/TikTokDownloader\u0026type=trending\u0026theme=dark\" /\u003e\u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/badge?repo=JoeanAmier/TikTokDownloader\u0026type=trending\" /\u003e\u003cimg alt=\"GitHub Trending Repository of the Day\" src=\"https://api.star-history.com/badge?repo=JoeanAmier/TikTokDownloader\u0026type=trending\" /\u003e\u003c/picture\u003e\n \u003c/a\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/JoeanAmier/TikTokDownloader?style=flat-square\"\u003e\n\u003cimg alt=\"GitHub forks\" src=\"https://img.shields.io/github/forks/JoeanAmier/TikTokDownloader?style=flat-square\u0026color=55efc4\"\u003e\n\u003cimg alt=\"GitHub Repo stars\" src=\"https://img.shields.io/github/stars/JoeanAmier/TikTokDownloader?style=flat-square\u0026color=fda7df\"\u003e\n\u003cimg alt=\"GitHub code size in bytes\" src=\"https://img.shields.io/github/languages/code-size/JoeanAmier/TikTokDownloader?style=flat-square\u0026color=a29bfe\"\u003e\n\u003cimg alt=\"GitHub all releases\" src=\"https://img.shields.io/github/downloads/JoeanAmier/TikTokDownloader/total?style=flat-square\u0026color=ffdd59\"\u003e\n\u003cbr\u003e\n\u003cimg alt=\"Static Badge\" src=\"https://img.shields.io/badge/Python-≥3.12-b8e994?style=flat-square\u0026logo=python\u0026labelColor=3dc1d3\"\u003e\n\u003cimg alt=\"GitHub release (with filter)\" src=\"https://img.shields.io/github/v/release/JoeanAmier/TikTokDownloader?style=flat-square\u0026color=48dbfb\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Sourcery-enabled-884898?style=flat-square\u0026color=1890ff\" alt=\"\"\u003e\n\u003cimg alt=\"Docker Pulls\" src=\"https://img.shields.io/docker/pulls/joeanamier/tiktok-downloader?style=flat-square\u0026color=badc58\"\u003e\n\u003cbr\u003e\n\u003cp\u003e🔥 抖音 / TikTok 平台作品下载/数据采集工具\u003c/p\u003e\n\u003cp\u003e⭐ 本项目历史名称：\u003ccode\u003eTikTokDownloader\u003c/code\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003chr\u003e\n\u003cp\u003e⚠️ 项目计划在 \u003ccode\u003e6.0\u003c/code\u003e 版本进行彻底重构，预期重构完成后支持 \u003ccode\u003eGUI\u003c/code\u003e 或者 \u003ccode\u003eWebUI\u003c/code\u003e！\u003c/p\u003e\n\u003cp\u003e⚠️ 为确保项目合法合规，本项目的加密参数算法不再维护；如因平台更新导致部分功能无法正常使用，请自行准备加密参数生成代码，配置方法请查阅 \u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/wiki/Documentation#%E5%8A%A0%E5%AF%86%E5%8F%82%E6%95%B0%E7%94%9F%E6%88%90%E4%BB%A3%E7%A0%81%E9%85%8D%E7%BD%AE\"\u003e文档\u003c/a\u003e！\u003c/p\u003e\n\u003chr\u003e\n\n# 📝 项目功能\n\n\u003cdetails\u003e\n\u003csummary\u003e项目功能清单，适合想要快速了解项目能力的用户查阅（点击展开）\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e✅ 下载抖音视频/图集\u003c/li\u003e\n\u003cli\u003e✅ 下载抖音实况/动图\u003c/li\u003e\n\u003cli\u003e✅ 下载最高画质视频文件\u003c/li\u003e\n\u003cli\u003e✅ 下载 TikTok 视频/图集\u003c/li\u003e\n\u003cli\u003e✅ 下载抖音账号发布/喜欢/收藏/收藏夹作品\u003c/li\u003e\n\u003cli\u003e✅ 下载 TikTok 账号发布/喜欢作品\u003c/li\u003e\n\u003cli\u003e✅ 采集抖音 / TikTok 详细数据\u003c/li\u003e\n\u003cli\u003e✅ 批量下载链接作品\u003c/li\u003e\n\u003cli\u003e✅ 多账号批量下载作品\u003c/li\u003e\n\u003cli\u003e✅ 自动跳过已下载的文件\u003c/li\u003e\n\u003cli\u003e✅ 持久化保存采集数据\u003c/li\u003e\n\u003cli\u003e✅ 支持 CSV/XLSX/SQLite 格式保存数据\u003c/li\u003e\n\u003cli\u003e✅ 下载动态/静态封面图\u003c/li\u003e\n\u003cli\u003e✅ 获取抖音直播拉流地址\u003c/li\u003e\n\u003cli\u003e✅ 获取 TikTok 直播拉流地址\u003c/li\u003e\n\u003cli\u003e✅ 调用 ffmpeg 下载直播\u003c/li\u003e\n\u003cli\u003e✅ Web UI 交互界面\u003c/li\u003e\n\u003cli\u003e✅ 采集抖音作品评论数据\u003c/li\u003e\n\u003cli\u003e✅ 下载抖音合集作品\u003c/li\u003e\n\u003cli\u003e✅ 下载 TikTok 合辑作品\u003c/li\u003e\n\u003cli\u003e✅ 记录点赞收藏等统计数据\u003c/li\u003e\n\u003cli\u003e✅ 筛选作品发布时间\u003c/li\u003e\n\u003cli\u003e✅ 支持账号作品增量下载\u003c/li\u003e\n\u003cli\u003e✅ 支持使用代理采集数据\u003c/li\u003e\n\u003cli\u003e✅ 支持局域网远程访问\u003c/li\u003e\n\u003cli\u003e✅ 采集抖音账号详细数据\u003c/li\u003e\n\u003cli\u003e✅ 作品统计数据更新\u003c/li\u003e\n\u003cli\u003e✅ 支持自定义账号/合集标识\u003c/li\u003e\n\u003cli\u003e✅ 自动更新账号昵称/标识\u003c/li\u003e\n\u003cli\u003e✅ 部署至私有服务器\u003c/li\u003e\n\u003cli\u003e✅ 部署至公开服务器\u003c/li\u003e\n\u003cli\u003e✅ 采集抖音搜索数据\u003c/li\u003e\n\u003cli\u003e✅ 采集抖音热榜数据\u003c/li\u003e\n\u003cli\u003e✅ 记录已下载作品 ID\u003c/li\u003e\n\u003cli\u003e✅ 从浏览器读取 Cookie\u003c/li\u003e\n\u003cli\u003e✅ 支持 Web API 调用\u003c/li\u003e\n\u003cli\u003e✅ 支持多线程下载作品\u003c/li\u003e\n\u003cli\u003e✅ 文件完整性处理机制\u003c/li\u003e\n\u003cli\u003e✅ 自定义规则筛选作品\u003c/li\u003e\n\u003cli\u003e✅ 按文件夹归档保存作品文件\u003c/li\u003e\n\u003cli\u003e✅ 自定义设置文件大小上限\u003c/li\u003e\n\u003cli\u003e✅ 支持文件断点续传下载\u003c/li\u003e\n\u003cli\u003e✅ 监听剪贴板链接下载作品\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\n# 💻 程序截图\n\n\u003cp\u003e\u003ca href=\"https://www.bilibili.com/video/BV1d7eAzTEFs/\"\u003e前往 bilibili 观看演示\u003c/a\u003e；\u003ca href=\"https://youtu.be/yMU-RWl55hg\"\u003e前往 YouTube 观看演示\u003c/a\u003e\u003c/p\u003e\n\n## 终端交互模式\n\n\u003cp\u003e建议通过配置文件管理账号，更多介绍请查阅 \u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/wiki/Documentation\"\u003e文档\u003c/a\u003e\u003c/p\u003e\n\n![终端模式截图](docs/screenshot/终端交互模式截图CN1.png)\n*****\n![终端模式截图](docs/screenshot/终端交互模式截图CN2.png)\n*****\n![终端模式截图](docs/screenshot/终端交互模式截图CN3.png)\n\n## Web UI 交互模式\n\n\u003e **该模式代码尚未更新，未来重构完成重新开放！**\n\n## Web API 接口模式\n\n![WebAPI模式截图](docs/screenshot/WebAPI模式截图CN1.png)\n*****\n![WebAPI模式截图](docs/screenshot/WebAPI模式截图CN2.png)\n\n\u003e **启动该模式后，访问 `http://127.0.0.1:5555/docs` 或者 `http://127.0.0.1:5555/redoc` 可以查阅自动生成的文档！**\n\n### API 调用示例代码\n\n```python\nfrom curl_cffi.requests import post\nfrom rich import print\n\n\ndef demo():\n    headers = {\"token\": \"\"}\n    data = {\n        \"detail_id\": \"0123456789\",\n        \"pages\": 2,\n    }\n    api = \"http://127.0.0.1:5555/douyin/comment\"\n    response = post(api, json=data, headers=headers)\n    print(response.json())\n\n\ndemo()\n```\n\n# 📋 项目说明\n\n## 快速入门\n\n\u003cp\u003e⭐ Mac OS、Windows 10 及以上用户可前往 \u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/releases/latest\"\u003eReleases\u003c/a\u003e 或者 \u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/actions\"\u003eActions\u003c/a\u003e 下载已编译的程序，开箱即用！\u003c/p\u003e\n\u003cp\u003e⭐ 本项目包含自动构建可执行文件的 GitHub Actions，使用者可以随时使用 GitHub Actions 将最新源码构建为可执行文件！\u003c/p\u003e\n\u003cp\u003e⭐ 自动构建可执行文件教程请查阅本文档的 \u003ccode\u003e构建可执行文件指南\u003c/code\u003e 部分；如果需要更加详细的图文教程，请 \u003ca href=\"https://mp.weixin.qq.com/s/TorfoZKkf4-x8IBNLImNuw\"\u003e查阅文章\u003c/a\u003e！\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e注意：由于 Mac OS 平台的可执行文件 \u003ccode\u003emain\u003c/code\u003e 未经过代码签名，首次运行时会受到系统安全限制。请先在终端执行 \u003ccode\u003exattr -cr 项目文件夹路径\u003c/code\u003e 命令移除安全标记，执行一次后即可正常运行。\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://nodejs.org/\"\u003eNode.js\u003c/a\u003e（可选依赖）\u003c/strong\u003e：\u003cdel\u003e部分功能依赖 Node.js 执行 JavaScript 代码，需要 Node.js 18 及以上版本；建议使用者自行安装，未安装时部分功能可能受到影响。\u003c/del\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli\u003e\u003cb\u003e运行可执行文件\u003c/b\u003e 或者 \u003cb\u003e配置环境运行\u003c/b\u003e（二选一）\n\u003col\u003e\u003cb\u003e运行可执行文件\u003c/b\u003e\n\u003cli\u003e下载 \u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/releases/latest\"\u003eReleases\u003c/a\u003e 或者 Actions 构建的可执行文件压缩包\u003c/li\u003e\n\u003cli\u003e解压后打开程序文件夹，双击运行 \u003ccode\u003emain\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003col\u003e\u003cb\u003e配置环境运行\u003c/b\u003e\n\u003cli\u003e安装不低于 \u003ccode\u003e3.12\u003c/code\u003e 版本的 \u003ca href=\"https://www.python.org/\"\u003ePython\u003c/a\u003e 解释器\u003c/li\u003e\n\u003cli\u003e下载最新的源码或 \u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/releases/latest\"\u003eReleases\u003c/a\u003e 发布的源码至本地\u003c/li\u003e\n\u003col\u003e\u003cb\u003e使用 pip 安装项目依赖\u003c/b\u003e\n\u003cli\u003e运行 \u003ccode\u003epython -m venv venv\u003c/code\u003e 命令创建虚拟环境（可选）\u003c/li\u003e\n\u003cli\u003e运行 \u003ccode\u003e.\\venv\\Scripts\\activate.ps1\u003c/code\u003e 或者 \u003ccode\u003evenv\\Scripts\\activate\u003c/code\u003e 命令激活虚拟环境（可选）\u003c/li\u003e\n\u003cli\u003e运行 \u003ccode\u003epip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt\u003c/code\u003e 命令安装程序所需模块\u003c/li\u003e\n\u003cli\u003e运行 \u003ccode\u003epython .\\main.py\u003c/code\u003e 或者 \u003ccode\u003epython main.py\u003c/code\u003e 命令启动 DouK-Downloader\u003c/li\u003e\n\u003c/ol\u003e\n\u003col\u003e\u003cb\u003e使用 uv 安装项目依赖（推荐）\u003c/b\u003e\n\u003cli\u003e运行 \u003ccode\u003euv sync --no-dev\u003c/code\u003e 命令同步环境依赖\u003c/li\u003e\n\u003cli\u003e运行 \u003ccode\u003euv run main.py\u003c/code\u003e 命令启动 DouK-Downloader\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e阅读 DouK-Downloader 的免责声明，根据提示输入内容\u003c/li\u003e\n\u003cli\u003e将 Cookie 信息写入配置文件\n\u003col\u003e\u003cb\u003e手动输入 Cookie\u003c/b\u003e\n\u003cli\u003e参考 \u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/blob/master/docs/Cookie%E8%8E%B7%E5%8F%96%E6%95%99%E7%A8%8B.md\"\u003eCookie 提取教程\u003c/a\u003e，复制所需 Cookie 至剪贴板\u003c/li\u003e\n\u003cli\u003e选择 \u003ccode\u003e手动输入 Cookie\u003c/code\u003e 选项，粘贴 Cookie 内容后按照程序提示操作\u003c/li\u003e\n\u003c/ol\u003e\n\u003col\u003e\u003cb\u003e从剪贴板读取 Cookie\u003c/b\u003e\n\u003cli\u003e参考 \u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/blob/master/docs/Cookie%E8%8E%B7%E5%8F%96%E6%95%99%E7%A8%8B.md\"\u003eCookie 提取教程\u003c/a\u003e，复制所需 Cookie 至剪贴板\u003c/li\u003e\n\u003cli\u003e选择 \u003ccode\u003e从剪贴板读取 Cookie\u003c/code\u003e 选项，程序会自动读取剪贴板的 Cookie 并写入配置文件\u003c/li\u003e\n\u003c/ol\u003e\n\u003col\u003e\u003cb\u003e\u003cdel\u003e从浏览器读取 Cookie（弃用）\u003c/del\u003e\u003c/b\u003e\n\u003cli\u003e\u003cdel\u003e选择 \u003ccode\u003e从浏览器读取 Cookie\u003c/code\u003e 选项，按照提示输入浏览器类型或序号\u003c/del\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003cli\u003e返回程序界面，依次选择 \u003ccode\u003e终端交互模式\u003c/code\u003e -\u003e \u003ccode\u003e批量下载链接作品\u003c/code\u003e -\u003e \u003ccode\u003e手动输入待采集的作品链接\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e输入抖音作品链接即可下载作品文件（TikTok 平台需要更多初始设置，详见文档）\u003c/li\u003e\n\u003cli\u003e更多详细说明请查看 \u003cb\u003e\u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/wiki/Documentation\"\u003e项目文档\u003c/a\u003e\u003c/b\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e⭐ 推荐使用 \u003ca href=\"https://learn.microsoft.com/zh-cn/windows/terminal/install\"\u003eWindows 终端\u003c/a\u003e（Windows 11 自带默认终端）\u003c/p\u003e\n\n### Docker 容器\n\n\u003cdetails\u003e\n\u003csummary\u003eDocker 容器部署步骤，适合使用 Docker 部署和运行本项目的用户查阅（点击展开）\u003c/summary\u003e\n\n\u003col\u003e\n\u003cli\u003e获取镜像\u003c/li\u003e\n\u003cul\u003e\n\u003cli\u003e方式一：使用 \u003ccode\u003eDockerfile\u003c/code\u003e 文件构建镜像\u003c/li\u003e\n\u003cli\u003e方式二：使用 \u003ccode\u003edocker pull joeanamier/tiktok-downloader\u003c/code\u003e 命令拉取镜像\u003c/li\u003e\n\u003cli\u003e方式三：使用 \u003ccode\u003edocker pull ghcr.io/joeanamier/tiktok-downloader\u003c/code\u003e 命令拉取镜像\u003c/li\u003e\n\u003c/ul\u003e\n\u003cli\u003e创建容器：\u003ccode\u003edocker run --name 容器名称(可选) -p 主机端口号:5555 -v tiktok_downloader_volume:/app/Volume -it \u0026lt;镜像名称\u0026gt;\u003c/code\u003e\n\u003c/li\u003e\n\u003cbr\u003e\u003cb\u003e注意：\u003c/b\u003e此处的 \u003ccode\u003e\u0026lt;镜像名称\u0026gt;\u003c/code\u003e 需与您在第一步中使用的镜像名称保持一致（例如 \u003ccode\u003ejoeanamier/tiktok-downloader\u003c/code\u003e 或 \u003ccode\u003eghcr.io/joeanamier/tiktok-downloader\u003c/code\u003e）\n\u003cli\u003e运行容器\n\u003cul\u003e\n\u003cli\u003e启动容器：\u003ccode\u003edocker start -i 容器名称/容器 ID\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e重启容器：\u003ccode\u003edocker restart -i 容器名称/容器 ID\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eDocker 容器无法直接访问宿主机的文件系统，部分功能不可用，例如：\u003ccode\u003e从浏览器读取 Cookie\u003c/code\u003e；其他功能如有异常请反馈！\u003c/p\u003e\n\n\u003c/details\u003e\n\u003chr\u003e\n\n## 关于 Cookie\n\n[点击查看 Cookie 获取教程](https://github.com/JoeanAmier/TikTokDownloader/blob/master/docs/Cookie%E8%8E%B7%E5%8F%96%E6%95%99%E7%A8%8B.md)\n\n\u003e * Cookie 仅需在失效后重新写入配置文件，并非每次运行程序都要写入配置文件！\n\u003e\n\u003e * 程序获取数据失败时，可以尝试更新 Cookie 或者使用已登录的 Cookie！\n\n\u003chr\u003e\n\n## 其他说明\n\n\u003cul\u003e\n\u003cli\u003e本项目内置延时请求机制，避免请求频率过高影响平台服务器，如需关闭，请参考 \u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/wiki/Documentation#%E9%AB%98%E7%BA%A7%E9%85%8D%E7%BD%AE\"\u003e文档\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e程序提示用户输入时，直接回车代表返回上级菜单，输入 \u003ccode\u003eQ\u003c/code\u003e 或 \u003ccode\u003eq\u003c/code\u003e 代表结束运行\u003c/li\u003e\n\u003cli\u003e由于获取账号喜欢作品和收藏作品数据仅返回喜欢 / 收藏作品的发布日期，不返回操作日期，因此程序需要获取全部喜欢 / 收藏作品数据再进行日期筛选；如果作品数量较多，可能会花费较长的时间；可通过 \u003ccode\u003emax_pages\u003c/code\u003e 参数控制请求次数\u003c/li\u003e\n\u003cli\u003e获取私密账号的发布作品数据需要登录后的 Cookie，且登录的账号需要关注该私密账号\u003c/li\u003e\n\u003cli\u003e批量下载账号作品或合集作品时，如果对应的昵称或标识发生变化，程序会自动更新已下载作品文件名称中的昵称和标识\u003c/li\u003e\n\u003cli\u003e程序下载文件时会先将文件下载至临时文件夹，下载完成后再移动至储存文件夹；程序运行结束时会清空临时文件夹\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e批量下载收藏作品模式\u003c/code\u003e 目前仅支持下载当前已登录 Cookie 对应账号的收藏作品，暂不支持多账号\u003c/li\u003e\n\u003cli\u003e如果需要程序使用代理请求数据，请在配置文件 \u003ccode\u003esettings.json\u003c/code\u003e 设置 \u003ccode\u003eproxy\u003c/code\u003e 参数 (可以考虑使用代理平台: \u003ca href=\"https://www.swiftproxy.net/?ref=TikTokDownloader\"\u003eSwiftproxy\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e如果您的计算机没有合适的程序编辑 JSON 文件，建议使用 \u003ca href=\"https://www.toolhelper.cn/JSON/JSONFormat\"\u003e在线工具\u003c/a\u003e 编辑配置文件内容，修改后需要重启软件才能生效。\u003c/li\u003e\n\u003cli\u003e当程序请求用户输入内容或链接时，请注意避免输入的内容或链接包含换行符，这可能会导致预期之外的问题\u003c/li\u003e\n\u003cli\u003e本项目不会支持付费作品下载，请勿反馈任何关于付费作品下载的问题\u003c/li\u003e\n\u003cli\u003e\u003cdel\u003eWindows 系统需要以管理员身份运行程序才能读取 Chromium、Chrome、Edge 浏览器 Cookie\u003c/del\u003e\u003c/li\u003e\n\u003cli\u003e本项目并未针对程序多开的情况进行优化，如需程序多开，请复制整个项目的文件夹，避免出现预期之外的问题\u003c/li\u003e\n\u003cli\u003e程序运行过程中，如需终止程序或 \u003ccode\u003effmpeg\u003c/code\u003e，请按下 \u003ccode\u003eCtrl + C\u003c/code\u003e 终止运行，不要直接点击终端窗口的关闭按钮\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e构建可执行文件指南\u003c/h2\u003e\n\u003cdetails\u003e\n\u003csummary\u003e通过 GitHub Actions 简单几步即可自动完成，适合需要自行构建程序的用户查阅（点击展开）\u003c/summary\u003e\n\n本指南将引导您通过 Fork 本仓库并执行 GitHub Actions 自动完成基于最新源码的程序构建和打包！\n\n---\n\n### 使用步骤\n\n#### 1. Fork 本仓库\n\n1. 点击项目仓库右上角的 **Fork** 按钮，将本仓库 Fork 到您的个人 GitHub 账户中\n2. 您的 Fork 仓库地址将类似于：`https://github.com/your-username/this-repo`\n\n---\n\n#### 2. 启用 GitHub Actions\n\n1. 前往您 Fork 的仓库页面\n2. 点击顶部的 **Settings** 选项卡\n3. 点击右侧的 **Actions** 选项卡\n4. 点击 **General** 选项\n5. 在 **Actions permissions** 下，选择 **Allow all actions and reusable workflows** 选项，点击 **Save** 按钮\n\n---\n\n#### 3. 手动触发打包流程\n\n1. 在您 Fork 的仓库中，点击顶部的 **Actions** 选项卡\n2. 找到名为 **构建可执行文件** 的工作流\n3. 点击右侧的 **Run workflow** 按钮：\n    - 选择 **master** 或者 **develop** 分支\n    - 点击 **Run workflow**\n\n---\n\n#### 4. 查看打包进度\n\n1. 在 **Actions** 页面中，您可以看到触发的工作流运行记录\n2. 点击运行记录，查看详细的日志以了解打包进度和状态\n\n---\n\n#### 5. 下载打包结果\n\n1. 打包完成后，进入对应的运行记录页面\n2. 在页面底部的 **Artifacts** 部分，您将看到打包的结果文件\n3. 点击下载并保存到本地，即可获得打包好的程序\n\n---\n\n### 注意事项\n\n1. **资源使用**：\n    - Actions 的运行环境由 GitHub 免费提供，普通用户每月有一定的免费使用额度（2000 分钟）\n\n2. **代码修改**：\n    - 您可以自由修改 Fork 仓库中的代码以定制程序打包流程\n    - 修改后重新触发打包流程，您将得到自定义的构建版本\n\n3. **与主仓库保持同步**：\n    - 如果主仓库更新了代码或工作流，建议您定期同步 Fork 仓库以获取最新功能和修复\n\n---\n\n### Actions 常见问题\n\n#### Q1: 为什么我无法触发工作流？\n\nA: 请确认您已按照步骤 **启用 Actions**，否则 GitHub 会禁止运行工作流\n\n#### Q2: 打包流程失败怎么办？\n\nA:\n\n- 检查运行日志，了解失败原因\n- 确保代码没有语法错误或依赖问题\n- 如果问题仍未解决，可以在本仓库的 [Issues 页面](https://github.com/JoeanAmier/TikTokDownloader/issues) 提出问题\n\n#### Q3: 我可以直接使用主仓库的 Actions 吗？\n\nA: 由于权限限制，您无法直接触发主仓库的 Actions。请通过 Fork 仓库的方式执行打包流程\n\n\u003c/details\u003e\n\n## 程序更新\n\n\u003cp\u003e\u003cstrong\u003e方案一：\u003c/strong\u003e下载并解压文件，将旧版本的 \u003ccode\u003eVolume\u003c/code\u003e 文件夹复制到新版本的程序根目录。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e方案二：\u003c/strong\u003e下载并解压文件（不要运行程序），复制全部文件，直接覆盖旧版本文件。\u003c/p\u003e\n\n# 💝 项目赞助\n\n## Swiftproxy\n\n\u003cp\u003e\u003ca href=\"https://www.swiftproxy.net/?ref=TikTokDownloader\"\u003e\u003cimg src=\"docs/AD/Swiftproxy_CN_AD.png\" alt=\"Swiftproxy\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e接入覆盖全球的 8000万+ 住宅 IP，专为 TikTok / 抖音数据采集与下载优化，\u003ca href=\"https://www.swiftproxy.net/?ref=TikTokDownloader\"\u003eSwiftproxy\u003c/a\u003e 可有效降低限流与封禁风险，保障下载稳定性与自动轮换。\u003c/p\u003e\n\u003cp\u003e优惠码：PROXY90（9折）\u003c/p\u003e\n\n***\n\n## DartNode\n\n[![Powered by DartNode](docs/AD/DartNode_AD.png)](https://dartnode.com \"Powered by DartNode - Free VPS for Open Source\")\n\n***\n\n## TikHub\n\n\u003cp\u003e\u003ca href=\"https://tikhub.io/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=tiktok_downloader\u0026ref=github_joeanamier_tiktokdownloader\"\u003e\u003cimg src=\"docs/AD/TIKHUB_AD.jpg\" alt=\"TIKHUB\" width=\"458\" height=\"319\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://tikhub.io/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=tiktok_downloader\u0026ref=github_joeanamier_tiktokdownloader\"\u003eTikHub API\u003c/a\u003e 提供超过 700 个端点，可用于从 14+ 个社交媒体平台获取与分析数据 —— 包括视频、用户、评论、商店、商品与趋势等，一站式完成所有数据访问与分析。\u003c/p\u003e\n\u003cp\u003e使用 \u003cstrong\u003e邀请码\u003c/strong\u003e：\u003ccode\u003eZrdH8McC\u003c/code\u003e 注册并充值即可获得 \u003ccode\u003e$2\u003c/code\u003e 额度。\u003c/p\u003e\n\u003ch1\u003e🌟 贡献指南\u003c/h1\u003e\n\u003cdetails\u003e\n\u003csummary\u003e项目贡献规范与提交流程，适合有意向参与项目开发的贡献者查阅（点击展开）\u003c/summary\u003e\n\n\u003cp\u003e\u003cstrong\u003e欢迎对本项目做出贡献！为了保持代码库的整洁、高效和易于维护，请仔细阅读以下指南，以确保您的贡献能够顺利被接受和整合。\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e在开始开发前，请从 \u003ccode\u003edevelop\u003c/code\u003e 分支拉取最新的代码，以此为基础进行修改；这有助于避免合并冲突并保证您的改动基于最新的项目状态。\u003c/li\u003e\n\u003cli\u003e如果您的更改涉及多个不相关的功能或问题，请将它们分成多个独立的提交或拉取请求。\u003c/li\u003e\n\u003cli\u003e每个拉取请求应尽可能专注于单一功能或修复，以便于代码审查和测试。\u003c/li\u003e\n\u003cli\u003e遵循现有的代码风格；请确保您的代码与项目中已有的代码风格保持一致；建议使用 Ruff 工具保持代码格式规范。\u003c/li\u003e\n\u003cli\u003e编写可读性强的代码；添加适当的注释帮助他人理解您的意图。\u003c/li\u003e\n\u003cli\u003e每个提交都应该包含一个清晰、简洁的提交信息，以描述所做的更改。提交信息应遵循以下格式：\u003ccode\u003e\u0026lt;类型\u0026gt;: \u0026lt;简短描述\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e当您准备提交拉取请求时，请优先将它们提交到 \u003ccode\u003edevelop\u003c/code\u003e 分支；这是为了给维护者一个缓冲区，在最终合并到 \u003ccode\u003emaster\u003c/code\u003e\n分支之前进行额外的测试和审查。\u003c/li\u003e\n\u003cli\u003e建议在开发前或遇到疑问时与作者沟通，确保开发方向一致，避免重复劳动或无效提交。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e参考资料：\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.contributor-covenant.org/zh-cn/version/2/1/code_of_conduct/\"\u003e贡献者公约\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opensource.guide/zh-hans/how-to-contribute/\"\u003e如何为开源做贡献\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/details\u003e\n\n# ♥️ 支持项目\n\n\u003cp\u003e如果 \u003cb\u003eDouK-Downloader\u003c/b\u003e 对您有帮助，请考虑为它点个 \u003cb\u003eStar\u003c/b\u003e ⭐，感谢您的支持！\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"center\"\u003e微信(WeChat)\u003c/th\u003e\n\u003cth align=\"center\"\u003e支付宝(Alipay)\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"./docs/微信赞助二维码.png\" alt=\"微信赞助二维码\" height=\"200\" width=\"200\"\u003e\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cimg src=\"./docs/支付宝赞助二维码.png\" alt=\"支付宝赞助二维码\" height=\"200\" width=\"200\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e如果您愿意，可以考虑提供资助为 \u003cb\u003eDouK-Downloader\u003c/b\u003e 提供额外的支持！\u003c/p\u003e\n\n# ✉️ 联系作者\n\n\u003cul\u003e\n\u003cli\u003e作者邮箱：yonglelolu@foxmail.com\u003c/li\u003e\n\u003cli\u003e作者微信: Downloader_Tools\u003c/li\u003e\n\u003cli\u003e微信公众号: Downloader Tools\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eDiscord 社区\u003c/b\u003e: \u003ca href=\"https://discord.com/invite/ZYtmgKud9Y\"\u003e点击加入社区\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eQQ 群聊(用于项目交流与摸鱼闲聊): \u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/blob/master/docs/QQ%E7%BE%A4%E8%81%8A%E4%BA%8C%E7%BB%B4%E7%A0%81.png\"\u003e扫码加入群聊\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e✨ \u003cb\u003e作者的其他开源项目：\u003c/b\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003eXHS-Downloader（小红书、XiaoHongShu、RedNote）\u003c/b\u003e：\u003ca href=\"https://github.com/JoeanAmier/XHS-Downloader\"\u003ehttps://github.com/JoeanAmier/XHS-Downloader\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eKS-Downloader（快手、KuaiShou）\u003c/b\u003e：\u003ca href=\"https://github.com/JoeanAmier/KS-Downloader\"\u003ehttps://github.com/JoeanAmier/KS-Downloader\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n# ⚠️ 免责声明\n\n\u003col\u003e\n\u003cli\u003e使用者对本项目的使用由使用者自行决定，并自行承担风险。作者对使用者使用本项目所产生的任何损失、责任、或风险概不负责。\u003c/li\u003e\n\u003cli\u003e本项目的作者提供的代码和功能是基于现有知识和技术的开发成果。作者按现有技术水平努力确保代码的正确性和安全性，但不保证代码完全没有错误或缺陷。\u003c/li\u003e\n\u003cli\u003e本项目依赖的所有第三方库、插件或服务各自遵循其原始开源或商业许可，使用者需自行查阅并遵守相应协议，作者不对第三方组件的稳定性、安全性及合规性承担任何责任。\u003c/li\u003e\n\u003cli\u003e使用者在使用本项目时必须严格遵守 \u003ca href=\"https://github.com/JoeanAmier/TikTokDownloader/blob/master/LICENSE\"\u003eGNU\n    General Public License v3.0\u003c/a\u003e 的要求，并在适当的地方注明使用了 \u003ca\n        href=\"https://github.com/JoeanAmier/TikTokDownloader/blob/master/LICENSE\"\u003eGNU General Public License\n    v3.0\u003c/a\u003e 的代码。\n\u003c/li\u003e\n\u003cli\u003e使用者在使用本项目的代码和功能时，必须自行研究相关法律法规，并确保其使用行为合法合规。任何因违反法律法规而导致的法律责任和风险，均由使用者自行承担。\u003c/li\u003e\n\u003cli\u003e使用者不得使用本工具从事任何侵犯知识产权的行为，包括但不限于未经授权下载、传播受版权保护的内容，开发者不参与、不支持、不认可任何非法内容的获取或分发。\u003c/li\u003e\n\u003cli\u003e本项目不对使用者涉及的数据收集、存储、传输等处理活动的合规性承担责任。使用者应自行遵守相关法律法规，确保处理行为合法正当；因违规操作导致的法律责任由使用者自行承担。\u003c/li\u003e\n\u003cli\u003e使用者在任何情况下均不得将本项目的作者、贡献者或其他相关方与使用者的使用行为联系起来，或要求其对使用者使用本项目所产生的任何损失或损害负责。\u003c/li\u003e\n\u003cli\u003e本项目的作者不会提供 DouK-Downloader 项目的付费版本，也不会提供与 DouK-Downloader 项目相关的任何商业服务。\u003c/li\u003e\n\u003cli\u003e基于本项目进行的任何二次开发、修改或编译的程序与原创作者无关，原创作者不承担与二次开发行为或其结果相关的任何责任，使用者应自行对因二次开发可能带来的各种情况负全部责任。\u003c/li\u003e\n\u003cli\u003e本项目不授予使用者任何专利许可；若使用本项目导致专利纠纷或侵权，使用者自行承担全部风险和责任。未经作者或权利人书面授权，不得使用本项目进行任何商业宣传、推广或再授权。\u003c/li\u003e\n\u003cli\u003e作者保留随时终止向任何违反本声明的使用者提供服务的权利，并可能要求其销毁已获取的代码及衍生作品。\u003c/li\u003e\n\u003cli\u003e作者保留在不另行通知的情况下更新本声明的权利，使用者持续使用即视为接受修订后的条款。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cb\u003e在使用本项目的代码和功能之前，请您认真考虑并接受以上免责声明。如果您对上述声明有任何疑问或不同意，请不要使用本项目的代码和功能。如果您使用了本项目的代码和功能，则视为您已完全理解并接受上述免责声明，并自愿承担使用本项目的一切风险和后果。\u003c/b\u003e\n\u003ch1\u003e⭐ Star 趋势\u003c/h1\u003e\n\u003ca href=\"https://www.star-history.com/?repos=joeanamier%2Ftiktokdownloader\u0026type=timeline\u0026releases=\u0026legend=bottom-right\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/chart?repos=joeanamier/tiktokdownloader\u0026type=timeline\u0026theme=dark\u0026legend=bottom-right\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/chart?repos=joeanamier/tiktokdownloader\u0026type=timeline\u0026legend=bottom-right\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/chart?repos=joeanamier/tiktokdownloader\u0026type=timeline\u0026legend=bottom-right\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n# 💡 参考与致谢\n\n* https://github.com/Evil0ctal/Douyin_TikTok_Download_API\n* https://github.com/Johnserf-Seed/f2\n* https://github.com/ihmily/DouyinLiveRecorder\n* https://github.com/lexiforest/curl_cffi/\n* https://github.com/Textualize/rich\n* https://github.com/omnilib/aiosqlite\n* https://github.com/Tinche/aiofiles\n* https://github.com/marcelotduarte/cx_Freeze\n* https://foss.heptapod.net/openpyxl/openpyxl\n* https://github.com/carpedm20/emoji/\n* https://github.com/lxml/lxml\n* https://github.com/extremeheat/JSPyBridge\n* https://ffmpeg.org/ffmpeg-all.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoeanamier%2Ftiktokdownloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoeanamier%2Ftiktokdownloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoeanamier%2Ftiktokdownloader/lists"}