Move from Emby
You can bring your libraries, members, metadata, artwork and watch history from an existing Emby server into Kryspal Media. The import only reads from Emby, so you can keep using Emby while it runs.
On this page
Before you start#
The import is read-only. It never changes Emby's settings, libraries or files, and it does not make Emby scan or play anything. You do not need to stop Emby. Both servers can run on the same machine at the same time: Kryspal Media uses port 5797 by default, so it does not compete with Emby for a port.
Prepare three things:
- An Emby API key. In Emby's dashboard, create an administrator API key and paste it during the import. The key is only used to connect and is not stored. You can delete it in Emby afterwards.
- Access to the video files. Both servers are usually on the same NAS with the videos in the same folder. If Kryspal Media runs in Docker, mount the library folder into the container.
- A finished first-run setup, with third-party player compatibility chosen. Most people pick "3rd-party players for Emby", so your third-party players only need the new server address.
What comes over#
| Content | Details |
|---|---|
| Libraries | Name, type, paths and language settings |
| Members | Name, avatar and which libraries they can see |
| Video data | Title, overview, year, rating, genres, cast and crew, tags and more, copied as-is without being re-parsed |
| Locked fields | Fields you edited by hand in Emby and locked |
| Images | Posters, backdrops and people photos |
| Watch data | For each member: watched state, resume position, play count, favorite videos and people |
| Stream info | Resolution, codecs, audio and subtitle tracks and duration that Emby already probed (for remote-stream sources), so players see them from the start |
| Multiple versions | Several versions of one title in Emby (for example 1080p and 4K) become one title with several versions |
An Emby "mixed content" library stays a mixed library after the import, and the server tells from folder and file names which items are shows. We suggest splitting it into a movie library and a TV library afterwards.
What does not come over#
| Content | Why, and what to do |
|---|---|
| Passwords | Passwords cannot be migrated. Imported accounts start disabled. Set a new password for each account, then enable it |
| API keys | Create new API keys in Kryspal Media |
| Plugins and their settings | Kryspal Media has its own plugins. The import report lists the plugins found on Emby so you can compare |
| Playlists | Not imported |
| Collections | Not imported directly. They are rebuilt from NFO files and scanning |
| Music, live TV and similar | Not supported. These libraries show as not selectable |
Pick an import method#
You can choose one method per library.
Full import (default). Reads metadata, cast and images from Emby, title by title. Each title looks complete as soon as it is done, with no scraping needed. Use it when Emby does not store metadata in files, or when you want things to look exactly as they do in Emby now.
Rebuild from local NFO. Kryspal Media scans the NFO and image files next to your videos and rebuilds the metadata itself. It does not pull metadata, people or images from Emby. Emby only provides library settings, members, watch history, favorites and the fields you locked. It sends the fewest requests to Emby and is faster. Use it when Emby saves metadata into the media folders (the Emby library option to save metadata into media folders, set to Nfo), especially when Emby sits on a cloud drive.
| Situation | Choose |
|---|---|
| Emby saves NFO files and posters next to the videos | Rebuild from local NFO |
| Emby has no NFO files, or no images next to the videos | Full import |
| You are not sure | Full import |
| Emby is on a cloud drive and you want to disturb it as little as possible | Rebuild from local NFO |
With NFO rebuild, if you changed something in Emby that was not written back to the NFO (or the NFO is older than Emby), Kryspal Media uses Emby's value where the two differ.
Steps#
- Open the admin console, go to System → Migration import. Choose Emby as the source server type and enter Emby's address (for example
http://192.168.1.10:8096, without/emby) and the API key. - Click Preview. The page lists Emby's libraries, video counts and members, and whether each library's folders exist on this server.
- Set Path mapping if needed. Emby records the paths it sees (for example
/mnt/movies/...), and this server needs the paths it sees. Write each rule as "source path → local path", for example/mnt/movies→/media/movies. If both servers see the same paths, no mapping is needed. Start only when every folder in the preview shows "Exists here". "Not found here" means the mapping is wrong or the folder is not mounted on this server. If the preview says a folder is not inside the allowed media roots, set a path mapping, or add the path to the server'sMEDIA_ROOTenvironment variable. - Select the libraries and members to import, choose an Import method for each library, and set its Storage location (local, or cloud drive if Emby's files are on a cloud drive; an existing library keeps its own). Keep Watch history and favorites checked (recommended).
- Start the import. It runs in the background, so you can close the page. Progress, speed, time left and the title being processed show on the import page and under Tasks.
During and after the import#
- Each title is watchable as soon as it is done. You can browse the libraries while it runs. By default it starts with the library that has the fewest videos, so something is watchable soonest, and works from the most recently added backwards in each library.
- You can Pause and Resume. After an interruption (restart, network loss or cancel), use Resume under Recent imports. Finished work is not repeated and failed items are retried. You enter Emby's key again, because it is never stored.
- When everything is done, the server scans once more to pick up new files Emby did not know about. These are scraped in the usual way.
- Titles with complete data count as already identified and are not scraped again. Titles without metadata (no poster, or overview, genres and cast all empty) are queued for scraping.
When it finishes:
- Read the report. It shows counts and the items that were skipped, failed or could not be matched, with reasons. "Versions merged" is not a failure: it counts different versions of one Emby title that became one title. The usual reason for "could not be matched" is a wrong path mapping or files this server cannot see.
- Set a password for each imported account under Members, then enable it.
- Compare a few titles. Pick some you edited by hand and that have watch history, and check them against Emby.
- Check member counts. All members are imported, nothing is dropped. If you have more members than your plan allows, the extra ones cannot be used until you upgrade or change which members you keep. PRO and MAX allow more.
- Point your players at the new server. With "3rd-party players for Emby" mode, your third-party players work once you enter the new address, username and password. You can keep using Emby too. Watch history on the two servers stays separate afterwards. When you run the import again, Emby's data overwrites a local entry only if Emby's last play time is newer.
How long it takes#
It depends on library size, Emby's speed and your network.
- A full import of a large library can take several hours. Plan for more time than you expect.
- Running it again after an earlier import is much faster.
- Rebuild from local NFO sends far fewer requests to Emby and is usually much faster.
- The time left on the progress page adjusts itself to the measured speed.
To disturb Emby as little as possible:
- Prefer Rebuild from local NFO.
- If Emby is on a cloud drive, set the library's Storage location to cloud drive when you import. The import then slows down by itself. Try a small library first. If the cloud drive's quota is tight, run the libraries on different days.
- The defaults suit an Emby server on the same local network, and most people need not change them.
Troubleshooting#
| What you see | Likely cause |
|---|---|
| Many items "could not be matched" in the report | Wrong path mapping, or this server cannot see that folder (the preview shows "Not found here") |
| Empty overviews or posters after Rebuild from local NFO | Emby did not save metadata as files. Use Full import instead |
| Some videos failed | The report lists reasons and samples. It is usually an Emby timeout or error, and Resume retries them |
| The import is slow | The server lowers concurrency automatically when Emby is slow. For a library on a cloud drive, set Storage location to cloud drive, which reads fewer files at once. You can also lower Files read at once for a library under Advanced options, set a per-second limit, or use NFO rebuild |
| You cannot see imported members | Imported accounts are disabled. Set a password under Members, then enable them |
| A third-party player cannot connect | Check the mode is "3rd-party players for Emby", the address is the new server, and you use the new password |