How to Migrate from Plex to Jellyfin (2026)
Plex has been raising prices, locking features behind Plex Pass, and pushing ads into the free tier. More and more self-hosters are making the switch to Jellyfin - 100% free, no account required, no telemetry.
This guide walks you through the full migration: library setup, watch history transfer, metadata preservation, and client configuration.
Why People Are Leaving Plex
| Feature | Plex (Free) | Plex Pass | Jellyfin |
|---|---|---|---|
| Live TV / DVR | ❌ | ✅ | ✅ Free |
| Hardware transcoding | ❌ | ✅ | ✅ Free |
| Mobile sync / downloads | ❌ | ✅ | ✅ Free |
| Multi-user management | Limited | ✅ | ✅ Free |
| No account required | ❌ | ❌ | ✅ |
| Open source | ❌ | ❌ | ✅ |
| Ads in UI | Yes | No | No |
Jellyfin gives you everything Plex Pass offers - for free, forever.
Before You Start
What migrates easily
- Media files (they stay exactly where they are)
- Library structure (movies, TV shows, music)
- Metadata (re-fetched from TMDB/TVDB automatically)
- Posters and artwork (re-downloaded)
What requires extra steps
- Watch history and played status
- Playlists
- User accounts
- Custom artwork you manually set
What you lose
- Plex-specific features (Discover, Watchlist, Plex TV)
- Plex's managed home users (recreate manually in Jellyfin)
Step 1: Install Jellyfin
Run Jellyfin alongside Plex - do not uninstall Plex until you are fully migrated.
Docker Compose
services:
jellyfin:
image: jellyfin/jellyfin:latest
ports:
- "8096:8096"
volumes:
- ./jellyfin/config:/config
- ./jellyfin/cache:/cache
- /path/to/media:/media:ro
restart: unless-stopped
Point Jellyfin to the same media folders Plex uses. Your files do not move.
Step 2: Set Up Libraries
- Open Jellyfin at
http://your-server:8096 - Complete the setup wizard
- Add libraries pointing to your existing media paths:
- Movies →
/media/movies - TV Shows →
/media/tv - Music →
/media/music
- Movies →
- Let Jellyfin scan and fetch metadata (this takes 10-60 minutes depending on library size)
Jellyfin uses TMDB and TVDB - the same sources as Plex - so metadata quality is identical.
Step 3: Migrate Watch History
This is the most important step for most users. Nobody wants to lose their "watched" status.
Method A: Plex-to-Jellyfin migration tool (recommended)
The community-built PlexToJellyfin tool automates watch history migration:
# Install via pip
pip install plex-to-jellyfin
# Run migration
plex-to-jellyfin \
--plex-url http://localhost:32400 \
--plex-token YOUR_PLEX_TOKEN \
--jellyfin-url http://localhost:8096 \
--jellyfin-api-key YOUR_JELLYFIN_KEY
Get your Plex token: Plex Web → Account → click any media item → Get Info → View XML → find X-Plex-Token in the URL.
Method B: Kometa (formerly Plex Meta Manager)
If you already use Kometa for Plex, it can export watched status to a format Jellyfin can import.
Method C: Trakt sync (both platforms)
- Install the Trakt plugin on Plex → sync your history to Trakt
- Install the Trakt plugin on Jellyfin → import from Trakt
- All watched status transfers via Trakt as the intermediary
This is the most reliable method for large libraries.
Step 4: Migrate Playlists
Plex playlists do not export directly to Jellyfin. Options:
- Manual recreation - for small playlists, just rebuild them in Jellyfin
- Listrr - syncs Trakt lists to both Plex and Jellyfin
- Export to M3U - for music playlists, export from Plex and import to Jellyfin
Step 5: Recreate Users
Jellyfin user accounts are local - no Plex account required.
- Dashboard → Users → Add User
- Create accounts for each person who had Plex access
- Set library permissions and parental controls as needed
- Share the Jellyfin URL and credentials with each user
Users do not need a Jellyfin account - only a username and password on your server.
Step 6: Configure Clients
Android / Android TV
Install the official Jellyfin for Android app from Google Play. Add your server URL and log in.
iOS / Apple TV
Install Infuse (best Jellyfin client for Apple devices) or the official Jellyfin app.
Kodi
Install the Jellyfin for Kodi add-on from the Jellyfin repository.
Smart TV
Jellyfin has apps for Samsung (Tizen), LG (webOS), and Android TV.
Web browser
Access directly at http://your-server:8096 - no app needed.
Step 7: Verify and Decommission Plex
Before uninstalling Plex:
- [ ] All media appears correctly in Jellyfin
- [ ] Watch history transferred for all users
- [ ] All users can log in and stream
- [ ] Clients configured on all devices
- [ ] Reverse proxy updated to point to Jellyfin
- [ ] Notifications and monitoring set up
Once confirmed, stop and remove Plex:
docker stop plex
docker rm plex
Common Migration Issues
| Issue | Cause | Fix |
|---|---|---|
| Wrong metadata on some items | Plex used different TMDB ID | Fix match in Jellyfin: Edit → Identify |
| Missing episodes | Naming format difference | Rename files to Jellyfin standard |
| Watch history incomplete | API rate limits during migration | Re-run migration tool in batches |
| Clients can't find server | Different port (8096 vs 32400) | Update server URL in each client |
| Custom posters lost | Plex stores them internally | Re-upload manually or use Kometa |
FAQ
Can I run Plex and Jellyfin at the same time? Yes. They use different ports (32400 vs 8096) and can share the same media files simultaneously.
Will my media files be affected? No. Jellyfin reads your files in read-only mode. Nothing is moved or modified.
Do I need to re-download all my metadata? Jellyfin fetches metadata automatically during the library scan. It takes time but requires no manual work.
What about Plex Pass features I paid for? All Plex Pass features (hardware transcoding, Live TV, mobile sync) are free in Jellyfin.
Monitor Your New Jellyfin Server
After migrating, set up monitoring so you know your server is healthy:
- Active sessions and transcoding status
- CPU and RAM usage
- Push notifications when users connect
- Server uptime alerts
JellyWatch gives you all of this from your Android device - the perfect companion for your new Jellyfin setup.
Just migrated to Jellyfin? Keep an eye on your new server. Download JellyWatch on Google Play - real-time session monitoring, transcoding alerts, and server health for Jellyfin on Android.
Still running Emby? Download EmbyWatch on Google Play - the same monitoring experience for Emby servers.




Comments 3
Used the Trakt sync method to migrate watch history. Worked flawlessly for 3 users and 2000+ items. Zero data loss.
Ran both servers side by side for a week before cutting over. Smooth transition, family didn't even notice the switch.
No more Plex account required to access my own server. That alone was worth the migration effort.
Leave a comment