An Emby channel plugin for browsing YouTube content with the official YouTube Data API v3.
The plugin adds a YouTube entry to Emby and lets you browse saved channels, playlists, Watch Later-style playlists, trending videos, categories, and Shorts from one place.
- Add YouTube channels by
@handleor channel ID. - Add playlists as their own Emby folders.
- Add search folders for occasional YouTube searches.
- Create Watch Later-style folders from playlist IDs.
- Show Trending and category folders for a selected region.
- Split channels into Videos and Shorts when those folders have content.
- Hide Shorts globally if you prefer a long-form-only view.
- Hide empty playlists, categories, and Shorts folders.
- Optionally show YouTube root folders at the top level and, on Emby 4.10+, add one latest-videos home row per saved channel while reversibly hiding both forms of combined YouTube-latest row.
- Track estimated daily YouTube API quota usage.
- An Emby Server.
- A YouTube Data API v3 key from Google Cloud. The built-in Setup Guide walks you through creating one.
- .NET 8 SDK, only if you want to build the plugin from source.
The API key only needs access to public YouTube data. After installation, open the plugin settings and use the built-in Setup Guide to create and restrict the key.
- Download the latest
Emby.YouTubePlugin.dllrelease. - Copy the DLL into Emby's
programdata/pluginsfolder. - Restart Emby.
- Open the YouTube plugin settings.
- Use the Setup Guide tab to create a YouTube Data API v3 key.
- Paste the API key into the Settings tab.
- Add at least one channel, playlist, or search entry.
- Save the settings.
Useful Google Cloud pages:
- YouTube Data API v3: https://console.cloud.google.com/apis/library/youtube.googleapis.com
- Credentials: https://console.cloud.google.com/apis/credentials
The My YouTube Content field accepts:
@handle, for example@MrBeast- Channel IDs starting with
UC... - Playlist IDs starting with
PL... - Plain search text
Handles, channel IDs, and playlist IDs are the best options because they avoid the separate daily search.list limit. Plain search text works too, but each result page uses one Search Queries call.
The Watch Later Playlists field accepts playlist IDs. Each playlist becomes its own top-level folder and can be checked regularly for new videos.
Most browsing uses low-cost YouTube API endpoints:
| Action | Endpoint | Typical cost |
|---|---|---|
| Channel uploads | playlistItems.list |
1 unit |
| Playlist videos | playlistItems.list |
1 unit |
| Video details | videos.list |
1 unit per batch |
| Categories | videoCategories.list |
1 unit |
| Search folders | search.list |
1 Search Queries call |
The plugin caches responses on disk. Search results are cached longer because
search.list has a separate default limit of 100 calls per day, while most
other endpoints share the regular 10,000-unit daily bucket.
- Uses the official YouTube API and player. Videos are not downloaded or re-encoded.
- The plugin requests captions off, but some TV and Android players may ignore this.
- Resume and player cleanup depend on the Emby client. Bundled players may not use the server-side fixes.
- Private account data is not supported. Use channels and playlists accessible with your API key.
- After updating, restart Emby. If the web app still looks outdated, clear its browser cache.
This project is licensed under the MIT License. See LICENSE for details.
This plugin is free and open-source, maintained with a lot of love in my spare time. If it brings value to your Emby setup, a small donation would mean the world to me.







