Skip to main content

MCP server for downloading Douyin videos and extracting text

Project description

douyin

✨抖音爬虫

❤️开源不易,欢迎star⭐

📢声明

本项目初衷为学习python爬虫、命令行调用Aria2python实现WebUI的案例,程序功能为获取抖音平台上公开的信息,仅用于测试和学习研究,禁止用于商业用途或任何非法用途。

任何用户直接或间接使用、传播本仓库内容时责任自负,本仓库的贡献者不对该等行为产生的任何后果负责。

如果相关方认为该项目的代码可能涉嫌侵犯其权利,请及时联系我删除相关代码

使用本仓库的内容即表示您同意本免责声明的所有条款和条件。如果你不接受以上的免责声明,请立即停止使用本项目。


🏠项目地址

https://github.com/erma0/douyin

🍬功能

🎈获取抖音网页以下公开的数据信息:

  • 指定作品数据
  • 指定用户资料信息
  • 指定用户主页作品数据
  • 指定用户喜欢作品数据
  • 指定用户收藏作品数据
  • 指定音乐原声作品数据
  • 指定挑战话题作品数据
  • 指定合集作品数据
  • 指定用户关注列表数据
  • 指定用户粉丝列表数据
  • 指定关键词搜索作品数据
  • 指定关键词搜索用户数据
  • 指定关键词搜索直播数据
  • 指定作品评论数据
  • 指定作品评论回复数据

PS.

  • 支持输入文件路径批量操作(一行一个目标地址)
  • 支持增量采集指定用户主页作品
  • 部分作品封面不准确,原因不明

‍🚩待办

💡欢迎PR或建议

  • 完善程序 - 更新功能
  • GUI - Eel

🚀使用

📍测试环境:Win10 x64 + Python3.12

📭功能未全部测试,有问题请提交issue(请提供测试链接以便复现问题)

🍪获取cookie

🟢注意: cookie是有过期时间的,有效cookie内容一般在60条左右。

  1. 打开抖音网页版的任意用户主页(推荐使用Chrome/Edge浏览器),例如https://v.douyin.com/iybvCom1/,再按F12打开开发者工具,然后切换到网络/Network标签页

  2. 过滤/筛选器 中输入v1/web/aweme/post,找到任一个post/?开头的JSON请求(没有请求就刷新一下)

  3. 标头/Headers中往下滑,找到请求标头/Request Headers下面的Cookie,复制Cookie右边的值(可以双击直接全选),再保存到config/cookie.txt文件中。 示意图 PS. 可以使用-c edge/chrome命令自动获取本地edge/chrome浏览器中的cookie,不过取到的cookie不一定有效,且有效期很短,仅作为备选功能使用(实测chrome有效,Edge经常无效)。

⚠️ 据说用作品详情页中/aweme/v1/web/aweme/detail/接口请求带的cookie成功率较高,未测试。

🉑直接运行

下载dist目录中的douyin.exe,在程序所在目录打开命令行,输入对应命令,或者直接双击打开douyin.exe后根据提示输入目标链接即可。

⚠️ Linux或macOS请从官方地址下载对应的Aria2,然后自行修改源码调试运行

🐔命令行使用帮助

./douyin -h

🏀命令行使用例子(先在程序所在目录打开命令行

  • 获取指定用户主页/音乐/话题/合集/作品等数据

    # 部分类型链接可以自动识别,其他需要使用-t指定类型 
    ./douyin -u https://*/
    ./douyin -t search -u https://*/
    
    # -t, --type 指定类型:
        'post':用户主页作品
        'like':用户喜欢作品
        'music':音乐原声作品
        'hashtag':话题作品
        'search':搜索作品
        'collection':合集作品
        'favorite':用户收藏作品
        'video':单个视频作品
        'note':单个图文作品
        'follow':用户关注列表
        'fans':用户粉丝列表
        'user':搜索用户
        'live':搜索直播(暂未实现)
    
  • 获取当前用户喜欢/收藏作品等数据

    ./douyin -t like
    
  • 其他功能

    # -l 限制数量,只需要前5条结果
    ./douyin -l 5 -u https://*/ 
    
    # 连续输入多个目标地址
    ./douyin -u https://*1/ -u https://*2/ 
    
    # 输入文件[user.txt]中的多个目标
    ./douyin -u ./user.txt
    
  • 💡 手动使用aria2c下载

    aria2c -c --console-log-level warn -i 生成的下载配置文件.txt
    

也可参考test_douyin.py文件中的代码使用

🔨编译

  1. 安装依赖

    pip install -r ./requirements.txt
    
  2. 安装pyinstaller

    pip install -U pyinstaller
    
  3. 打包EXE,图标可自行更换

    pyinstaller -F ./cli.py -i ./static/ico.ico -n douyin --add-data "lib:lib" --add-data "aria2c.exe:."
    
    # 或者使用配置文件
    pyinstaller ./douyin.spec
    

Star History

Star History Chart

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ereach_douyin_mcp_server-0.0.12.tar.gz (134.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ereach_douyin_mcp_server-0.0.12-py3-none-any.whl (140.9 kB view details)

Uploaded Python 3

File details

Details for the file ereach_douyin_mcp_server-0.0.12.tar.gz.

File metadata

File hashes

Hashes for ereach_douyin_mcp_server-0.0.12.tar.gz
Algorithm Hash digest
SHA256 861474d82208ad9cda4eb0a9b4ed5baa729ccfa12350ebf702025091e708e39e
MD5 12236e38b6eb0bac1f84279ce97e4e8f
BLAKE2b-256 772f39573c573ed45e6dba0ae1be5d3e88a578d6628e4f2944a8c81bf4ea79e6

See more details on using hashes here.

File details

Details for the file ereach_douyin_mcp_server-0.0.12-py3-none-any.whl.

File metadata

File hashes

Hashes for ereach_douyin_mcp_server-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 42614a00120c7a04e8fc444db1dd9dbbb7602719926547476b5e993038c58e1c
MD5 da35a5adbddfa4902a532af007dddf74
BLAKE2b-256 427a9e845a27dafdce5130768851d49372b558beb30e3783ace7c3255d777085

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page