douyin-favorites-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@douyin-favorites-mcpShow me my Douyin favorites"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
douyin-favorites-mcp · Douyin Favorites MCP Service
Model Context Protocol (MCP) server for Douyin Favorites / Douyin Collections — reads the Douyin favorites (default favorites), collection folders / albums (e.g., "Learning") of your own account via a logged-in browser session, and exports structured data for AI assistants (Claude / WorkBuddy, etc.) to use.
English: An MCP server that reads your personal Douyin (抖音) favorites and collection folders (favorites/albums) via a logged-in browser session, for use with Claude / WorkBuddy and other MCP clients.
⚠️ Personal authorized use: This tool only reads the favorites data of the currently logged-in account; it does not provide scraping of others' data, CAPTCHA bypass, or signature cracking.
Features
Tool | Description |
| Open headed Chrome to log in to Douyin via QR code (session saved in local profile) |
| Check whether the current session is valid (based on the sessionid cookie) |
| Clear the local browser profile |
| Health check |
| Get basic info of the currently logged-in account (nickname/uid/followers/following/likes) |
| Fetch the video list of the default "Favorites" folder |
| List all collection folders (albums): id, name, video count |
| Fetch videos/image-text posts in a specified collection folder (album) |
| Get details and interaction data for a single video |
Supported content types: videos + image-text posts (long articles); both allow extracting title / author / interaction data / cover / duration.
How It Works
The Douyin web API has runtime signature protection, so API calls cannot be directly forged. This service uses:
Use Playwright to launch a real Chrome (persistent profile);
Scan the QR code to log in once; the session cookie is saved locally;
Drive the page UI (click the "Favorites" tab, then the "Collection folders" sub-tab), intercept XHR responses;
Parse and return structured data.
Verified endpoints (2026-08):
Collection folder list:
GET /aweme/v1/web/collects/list/Collection folder contents:
GET /aweme/v1/web/collects/video/list/?collects_id=...&cursor=0&count=10All favorites:
POST /aweme/v1/web/aweme/listcollection/(cursor is in the POST body)
Installation
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
pip install -e .
playwright install chromiumConfiguration (WorkBuddy / Claude Desktop)
Add to the MCP configuration (e.g., ~/.workbuddy/mcp.json):
{
"mcpServers": {
"douyin-favorites": {
"command": "C:/absolute/path/to/douyin-favorites/.venv/Scripts/python.exe",
"args": ["-m", "douyin_favorites.server"],
"env": {
"DOUYIN_DATA_DIR": "C:/Users/<you>/.douyin-favorites"
}
}
}
}
DOUYIN_DATA_DIRis the location where the browser profile (login state) is stored; do not include it in version control.
First-Time Usage
# 1. 登录(弹出 Chrome,扫码后自动关闭)
python scripts/verify.py
# 2. 或通过 MCP 调用:
# douyin_login_start
# douyin_login_status -> {"logged_in": true}
# list_collects -> 列出收藏夹(id + 名称 + 数量)
# get_collect_videos({"collects_id": "<id>"})The login state persists across sessions; you usually only need to scan the QR code again every few weeks.
Testing
pytest tests/ -v
python scripts/verify.py # 端到端验证(需要登录态)
python scripts/verify_collects.py # 列收藏夹 + 第一个收藏夹的视频Notes and Known Limitations
Login state detection is based on session cookies (
sessionid/sessionid_ss/sid_guard/sid_tt); do not use DOM elements to determine it (the Douyin homepage shows many author avatars even when not logged in, which would cause false positives).The Douyin homepage never reaches
networkidle; usedomcontentloadedfor all navigation.Pagination on the favorites page is triggered by the real mouse wheel (first
mouse.moveto the content area, thenwheel);window.scrollTodoes not work.The "Favorites" tab must be triggered by clicking; the
?showTab=favoriteURL parameter alone has no effect.get_video_detailmay be temporarily unavailable because Douyin has revamped its detail API.
Disclaimer
This project is for personal learning, research, and data organization only. By using this tool, you confirm that:
You only access data from Douyin accounts over which you have full access rights;
You will not use this tool for bulk scraping, data resale, engagement boosting, or other illegal/non-compliant activities;
You understand that Douyin's APIs may change at any time, causing the tool to become temporarily non-functional.
Any consequences arising from violation of the above terms or applicable laws and regulations shall be borne by the user.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Hailuo (MiniMax) AI video generation
MCP server for ByteDance Seedance AI video generation
MCP server for Kling AI video generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mlbb229229-create/douyin-favorites-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server