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: YouTube MCP Server
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 gradedqualityDmaintenanceEnables interaction with YouTube through the YouTube Data API, allowing users to search for videos, playlists, and channels, generate video titles using AI, and manage YouTube content through natural language commands.22ISC
- FlicenseNot gradedqualityDmaintenanceProvides distraction-free access to YouTube by allowing AI assistants to retrieve subscribed channels, latest videos, and transcripts without algorithmic recommendations. It enables searching within subscriptions and direct reading of video content through simple browser cookie authentication.-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search videos, read channels, browse playlists, fetch comments, and get transcripts from YouTube using the YouTube Data API v3 and InnerTube API for captions.2GPL 3.0
- AlicenseBqualityBmaintenanceProvides comprehensive access to YouTube Data, Analytics, and Reporting APIs, enabling AI assistants to manage videos, analyze performance, handle comments, and extract transcripts.40MIT