Configure Media Servers
Connect your media servers to Cinephage for automatic library refresh notifications. When Cinephage imports, upgrades, renames, or deletes media files, your media server will automatically update its library.
Supported Media Servers
| Server | Protocol | Default Port | API Type |
|---|---|---|---|
| Jellyfin | MediaBrowser | 8096 | REST API |
| Emby | MediaBrowser | 8096 | REST API |
| Plex | Plex XML API | 32400 | XML over HTTP |
How It Works
- Event Occurs — Cinephage imports, upgrades, renames, or deletes a file
- Batching — Events are collected for 5 seconds (deduplicated)
- Path Mapping — Local paths translated to media server paths
- Notification Sent — Each enabled server receives library update
- Library Refreshes — Media server refreshes affected folders
Configuration
Navigate to Settings > Integrations > Media Servers.
Step 1: Add a Media Server
- Click Add Server
- Select server type (Jellyfin, Emby, or Plex)
Step 2: Configure Connection
| Field | Description | Example |
|---|---|---|
| Name | Display name for this server | Living Room Jellyfin |
| Host | Server URL (include port if non-default) | http://192.168.1.100:8096 |
| API Key | Authentication key from your media server | from server settings |
Getting Your API Key
Jellyfin:
- Log in to Jellyfin
- Go to Dashboard > API Keys
- Click Create
- Name it "Cinephage" and copy the key
Emby:
- Log in to Emby
- Go to Settings > Advanced > API Keys
- Create a new key and copy it
Plex:
- Log in to Plex Web
- Go to Settings > Plex Web > Devices
- Find your server and copy the Plex Token from the URL
- Or visit
https://plex.tv/devices.xmland find the token
Step 3: Configure Notification Triggers
Select which events should trigger library updates:
| Trigger | Description | Recommended |
|---|---|---|
| On Import | Notify when new media is imported | Yes |
| On Upgrade | Notify when media quality is upgraded | Yes |
| On Rename | Notify when files are renamed | Yes |
| On Delete | Notify when media files are deleted | Yes |
Step 4: Configure Path Mappings (Docker)
If Cinephage and your media server run in different Docker containers, paths may differ:
| Field | Description |
|---|---|
| Local Path | Path as seen by Cinephage |
| Remote Path | Path as seen by media server |
Example:
Cinephage container mounts: /mnt/media:/media
Jellyfin container mounts: /mnt/media:/data/media
Local Path: /media/movies
Remote Path: /data/media/movies
To add a path mapping:
- Click Add Path Mapping
- Enter the local path (Cinephage's view)
- Enter the remote path (media server's view)
- Repeat for each root folder
Step 5: Test and Save
- Click Test to verify connection
- Review settings
- Click Save
Managing Multiple Servers
You can connect multiple media servers:
- Multiple Jellyfin/Emby instances — Different locations or users
- Mixed environments — Jellyfin for some, Plex for others
- Backup server — Secondary server for redundancy
Bulk Actions
Select multiple servers to:
- Enable/Disable — Toggle notifications
- Test — Verify all connections
- Delete — Remove servers
Server Status Indicators
| Status | Meaning |
|---|---|
| Healthy | Enabled, last test successful |
| Unhealthy | Enabled, last test failed |
| Disabled | Manually disabled, no notifications sent |
Manual Library Refresh
To trigger a full library refresh manually:
- Go to Settings > Integrations > Media Servers
- Click Trigger Refresh on the server
- The server will refresh all libraries
Troubleshooting
Connection Test Fails
Jellyfin/Emby:
- Verify URL includes protocol (
http://orhttps://) - Check port is correct (default: 8096)
- Ensure API key is valid and not expired
- Check firewall allows connections
Plex:
- Verify Plex Token is correct
- Ensure server is accessible (not behind VPN)
- Check if Plex is using custom port
- Try
http://instead ofhttps://for local connections
Library Not Updating
- Check notification triggers — Ensure events are enabled
- Verify path mappings — Mismatched paths cause silent failures
- Check server logs — Media server may have received but ignored
- Test manually — Use Test button to verify connection
Path Mapping Issues
Symptoms:
- Media server doesn't show new content
- Refresh doesn't find files
- Wrong library updated
Solutions:
- Verify both container mount points
- Test with absolute paths
- Check for trailing slashes (remove them)
- Ensure paths exist on both sides
Plex-Specific Issues
Plex requires library section lookup:
- Cinephage finds the section containing your path
- If path isn't in any library, refresh fails
- Ensure your root folders are in Plex libraries
"No matching library found":
- Add the path to a Plex library
- Or use full library refresh instead
Best Practices
Path Mappings
- Use consistent mount points across containers
- Document your mappings for future reference
- Test after Docker changes — Recreating containers can change paths
Notification Strategy
- Enable all triggers for best experience
- Disable On Delete if you manually manage deletions
- Use multiple servers for critical setups
Performance
- Batching is automatic — 5-second window groups rapid changes
- Deduplication — Same file changed multiple times = single notification
- Non-blocking — Notifications don't slow down Cinephage
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/notifications/mediabrowser | List servers |
| POST | /api/notifications/mediabrowser | Create server |
| PUT | /api/notifications/mediabrowser/[id] | Update server |
| DELETE | /api/notifications/mediabrowser/[id] | Delete server |
| POST | /api/notifications/mediabrowser/[id]/test | Test connection |
| POST | /api/notifications/mediabrowser/trigger | Manual full refresh |
See Also
- Initial Setup — First-time configuration
- Library Management — Managing your media library
- Troubleshooting — General troubleshooting