A Jellyfin metadata plugin that fetches anime metadata directly from Crunchyroll, with intelligent season and episode mapping designed to match how most users organize their libraries.
π Leia em PortuguΓͺs (Brasil): README.pt-BR.md
- Series Metadata: Title, overview, release year, genres, and age rating
- Season Metadata: Season titles and descriptions
- Episode Metadata: Title, overview, runtime, and air date
- Images: Posters, backdrops, and episode thumbnails
- Multi-language Support: English, Portuguese (Brazil), Japanese, and more
β οΈ Since v2.0.0, FlareSolverr is required for this plugin to work.
Crunchyroll is now protected by Cloudflare, which blocks all direct API requests. This plugin uses Chrome DevTools Protocol (CDP) inside FlareSolverr's browser to bypass Cloudflare and fetch metadata.
Without FlareSolverr running, the plugin will not be able to retrieve any metadata.
π FlareSolverr Installation & Configuration Guide
Quick start:
docker run -d --name flaresolverr -p 8191:8191 ghcr.io/flaresolverr/flaresolverr:latestThen configure the plugin with the FlareSolverr URL (http://localhost:8191) and Docker container name (flaresolverr) in the plugin settings.
Some metadata providers treat each season as a separate series. This plugin avoids that by:
- Automatically mapping Jellyfin seasons to Crunchyroll seasons
- Keeping all seasons grouped under a single series entry
Crunchyroll sometimes uses continuous episode numbering across seasons.
Example:
- Jujutsu Kaisen: Season 2 starts at episode 25 on Crunchyroll
- Typical Jellyfin library: Season 2 starts at episode 1
This plugin uses automatic episode offset calculation, ensuring:
S02E01in Jellyfin β Crunchyroll Episode 25 βS02E02in Jellyfin β Crunchyroll Episode 26 β
- Open the Jellyfin Dashboard
- Go to
Dashboard > Plugins > Repositories - Click
+and add the following manifest URL:
https://raw.githubusercontent.com/ocnaibill/crunchyroll-jellyfin/main/manifest.json
- Save and go to
Dashboard > Plugins > Catalog - Search for Crunchyroll Metadata and click Install
- Restart Jellyfin
# Linux (systemd)
sudo systemctl restart jellyfin
# Docker
docker restart jellyfin- Download
Jellyfin.Plugin.Crunchyroll.zipfrom the Releases page - Extract the files to the appropriate plugins directory:
| OS | Path |
|---|---|
| Linux | /var/lib/jellyfin/plugins/Crunchyroll/ |
| Windows | C:\ProgramData\Jellyfin\Server\plugins\Crunchyroll\ |
| macOS | ~/.local/share/jellyfin/plugins/Crunchyroll/ |
| Docker | /config/plugins/Crunchyroll/ |
Create the
Crunchyrollfolder if it does not exist.
- Restart Jellyfin
git clone https://github.com/ocnaibill/crunchyroll-jellyfin.git
cd crunchyroll-jellyfin
dotnet build -c ReleaseThe compiled DLL will be located at:
Jellyfin.Plugin.Crunchyroll/bin/Release/net8.0/Jellyfin.Plugin.Crunchyroll.dll
Copy it to your Jellyfin plugins directory and restart the server.
Configure the plugin at:
Dashboard > Plugins > Crunchyroll Metadata
- Preferred Language: Primary metadata language
- Fallback Language: Used when the preferred language is unavailable
- FlareSolverr URL: URL of the FlareSolverr instance (default:
http://localhost:8191) - Docker Container Name: Name of the FlareSolverr Docker container (default:
flaresolverr) - Chrome CDP URL: (Advanced) Override the Chrome DevTools Protocol URL. Leave empty for auto-detection.
π See FLARESOLVERR.md for detailed setup instructions.
- Enable Season Mapping: Maps Jellyfin seasons to Crunchyroll seasons
- Enable Episode Offset Mapping: Handles continuous episode numbering automatically
- Cache Expiration: Metadata cache duration in hours (default: 24h)
- Create or edit a TV Shows library
- Set the content type to Shows
- Enable Crunchyroll under:
- Series Metadata Downloaders
- Season Metadata Downloaders
- Episode Metadata Downloaders
- Enable Crunchyroll under Image Fetchers
- Adjust provider priority as desired
Animes/
βββ Jujutsu Kaisen/
β βββ Season 1/
β β βββ Jujutsu Kaisen - S01E01 - Ryomen Sukuna.mkv
β β βββ ...
β βββ Season 2/
β βββ Jujutsu Kaisen - S02E01 - Hidden Inventory.mkv
β βββ ...
If the plugin does not automatically match a series:
- Open the series in Jellyfin
- Click Edit Metadata
- Select Identify
- Search for the title on Crunchyroll
- Choose the correct result and refresh metadata
- Ensure the series title matches Crunchyroll naming
- Use manual identification if needed
- Confirm the anime is available on Crunchyroll
- Verify language settings in the plugin configuration
- Some titles may not be localized in all languages
- Ensure episode offset mapping is enabled
- Verify that each season starts at episode 1 locally
Enable debug logs in Dashboard > Logs and search for Crunchyroll.
When installed via the plugin repository, Jellyfin will automatically notify you when updates are available.
Jellyfin reads the plugin version from the compiled .NET assembly, not from manifest.json or GitHub releases.
- The
.csprojfile contains default version properties (Version,AssemblyVersion,FileVersion) - The CI workflow injects the Git tag version into the assembly at build time
manifest.jsonprovides version history for updates and changelog display (but not the displayed version)
If the plugin shows as 1.0.0.0 in Jellyfin:
- Check that the assembly was built with the correct
-p:Version=X.X.X.0parameter - Verify the
.csprojhas explicit version properties as a fallback
Contributions are welcome!
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to your fork
- Open a Pull Request
This project is licensed under the MIT License. See LICENSE.md for details.
This plugin is not affiliated with, endorsed by, or sponsored by Crunchyroll or Sony.
Crunchyroll is a registered trademark of Sony Group Corporation.
This plugin only uses publicly available metadata and does not provide access to premium or copyrighted content.
- Jellyfin project and plugin developer community
- Unofficial Crunchyroll API documentation projects
Made with β€οΈ for the Jellyfin community