yt-feed-mcp
Allows fetching latest videos from channels, listing subscriptions, and mass unsubscribing from all channels via browser automation and InnerTube API.
Click on "Deploy 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., "@yt-feed-mcplist my subscriptions"
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.
yt-feed
CLI tool for YouTube: fetch latest videos from channels, list subscriptions, and mass-unsubscribe from all channels using browser automation.
Features
feed — get N latest videos from a list of YouTube channels (via yt-dlp, no API key)
list-subs — list every channel your account is subscribed to
unsub — unsubscribe from ALL channels at once via YouTube's InnerTube API
MCP server — expose unsub tools via Model Context Protocol (for AI assistants like opencode)
Related MCP server: Cloudflare Playwright MCP
Installation
python -m venv .venv
.venv\Scripts\pip install yt-dlp requests playwright mcp
.venv\Scripts\playwright install chromiumOr install in editable mode:
.venv\Scripts\pip install -e .Usage
Fetch video feed
.venv\Scripts\python -m yt_feed.cli feed channels.txt -n 5 -o out.txt
# or after pip install -e .:
yt-feed feed channels.txt -n 5channels.txt — one channel URL per line (# for comments).
List subscriptions
yt-feed list-subs --browser edgeUnsubscribe from all channels
# Preview only (no changes)
yt-feed unsub --browser edge --dry-run
# Real unsubscribe (prompts for confirmation)
yt-feed unsub --browser edge
# Skip confirmation
yt-feed unsub --browser edge --yes
# Custom profile directory
yt-feed unsub --browser chrome --profile-dir "D:\User Data" --yesNote: Close the browser before running unsub — Playwright's launch_persistent_context cannot open a profile that's already in use.
MCP server
Run the MCP server via stdio:
yt-feed-mcpThen configure in opencode.json:
{
"mcp": {
"yt-unsub": {
"type": "local",
"command": [".venv\\Scripts\\python", "-m", "yt_feed.mcp_server"],
"enabled": true
}
}
}Available tools:
Tool | Description |
| List all subscribed channels |
| Unsubscribe from all channels (requires |
| Unsubscribe from specific channel IDs |
| Close the managed browser (free resources) |
Browsers
Flag | Browser |
| Microsoft Edge (default) |
| Google Chrome |
Profile paths
The tool auto-detects the browser profile directory. Override with --profile-dir <path> (points to the User Data directory, not the Default subfolder).
Browser | Windows | macOS | Linux |
Edge |
|
|
|
Chrome |
|
|
|
How the unsubscribe works
Playwright launches the browser with your profile (
launch_persistent_context) — this gives access to your YouTube sessionThe
/feed/channelspage is loaded and scrolled to the bottom; real UC channel IDs are extracted from the DOM (el.data.channelId)For each channel, a
POSTrequest is sent to InnerTube API/subscription/unsubscribefrom within the browser contextAuthorization: the
Authorization: SAPISIDHASH <ts>_<sha1>header is computed client-side from the SAPISID cookie viacrypto.subtle.digest('SHA-1', ...)
Key details
Cookies are never exported — the browser sends them natively via
credentials: 'include'yt-dlp cannot decrypt DPAPI-encrypted Edge cookies on Windows — Playwright is required
Channel IDs must be
UCxxxxx(not@handle)300 ms delay between requests to avoid rate limiting
Requirements
Python ≥ 3.10
Edge or Chrome browser with a logged-in YouTube account
Windows, macOS, or Linux
Project structure
yt-feed/
├── yt_feed/
│ ├── __init__.py
│ ├── cli.py # CLI entry point (argparse, commands: feed, list-subs, unsub)
│ ├── feed.py # Video feed via yt-dlp
│ ├── unsub.py # Mass unsubscribe via Playwright + InnerTube API
│ └── mcp_server.py # MCP server exposing tools via Model Context Protocol
├── channels.txt # Channel list for the feed command
├── pyproject.toml # Package config
├── AGENTS.md # Agent instructions (opencode)
└── README.mdThis server cannot be deployed
Maintenance
Related MCP Connectors
YouTube transcripts, search, channel/playlist listings and upload tracking for AI agents.
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
YouTube transcripts, search, channels, playlists and bulk transcript jobs for AI agents. 14 tools.
YouTube data for AI agents: channels, videos, transcripts, comments, search. Video research.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to control and automate your Chrome browser directly, leveraging existing login states and configurations for tasks like content analysis, semantic search across tabs, screenshots, network monitoring, and interactive operations.10MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser for web automation tasks like navigation, typing, clicking, and taking screenshots.-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser for web automation tasks such as navigation, typing, clicking, and taking screenshots.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control a Chrome browser through natural language, supporting navigation, interaction, tab management, and data extraction.MIT