Core plan + App Pro

Media Server

1.2.0 public beta · Media server

The CloudDrive2 core service on a computer or NAS can work as a media server. It scans your media libraries once, identifies titles, fetches posters and media info, and serves the result to all your devices. A CloudDrive2 app connected to it shows the server's libraries and stops scanning on its own; Infuse, SenPlayer and Emby and Jellyfin players connect to it as they would to a Jellyfin server; and a browser can browse and play too. Third-party players and the Media web page play original files relayed by the server, without receiving cloud-provider direct links. CloudDrive2 apps can still play through their own CloudDrive2 with the same cloud account. The server never transcodes.

Overview

What the media server does

Without a media server, the CloudDrive2 app on each device scans the libraries itself and shares what it scanned through your cloud storage. The media server moves that work onto one computer or NAS that stays on, and lets players other than CloudDrive2 use the same libraries.

Who uses itWhat they seeHow titles playPlan
A CloudDrive2 app connected to the serverThe server's libraries. Identify, favorites, skip intro and ending, Detect media info and the rest are done by the server, and every device sees the resultThrough the device's own CloudDrive2, from the cloudApp Pro on each device
A CloudDrive2 app that scans for itselfIts own libraries; with Scan on the server turned on, what it scans comes from the serverThe sameApp Pro on each device
Emby and Jellyfin playersThe libraries the signed-in profile sees, private libraries exceptedOriginal files relayed by the server; no cloud-provider direct linksNone of their own; the server account's plans cover them
A browserThe Media page of the core service's web interfaceIn the browser; what it can't play can be copied as a link or downloadedThe server account's plans cover it

How it differs from Emby and Jellyfin

  • The apps' rules for identifying titles: NFO files and artwork in the folders come first, and what they leave out is looked up on TMDB, Bangumi, MusicBrainz and Open Library. Recognition words, shelves, private libraries and the rest work exactly as in the apps' media library.
  • No cloud-provider direct links for third-party players: Infuse, SenPlayer, Emby and Jellyfin players and the Media web page use authenticated CloudDrive2 playback endpoints. The server relays original files, so playback depends on its network and processing capacity. CloudDrive2 apps playing through their own CloudDrive2 with the same cloud account use no media-server relay bandwidth. See How titles play.
  • No transcoding: every client plays the original file. A client that relies on the server to transcode can't play the formats it doesn't support.
  • The cloud is read once: players don't scan the cloud themselves. The server reads each library once at the pace you set, so the cloud is less likely to limit your account for too many requests.
  • Shared with the apps: the libraries' settings, identifications, scanned data and posters are shared with the CloudDrive2 apps through the CloudDrive2 Sync folder in your cloud storage. Change a library in an app and the server follows, and the other way round.

Where it runs

A computer, NAS or Docker container running the CloudDrive2 core service, on x86_64 or ARM64 (aarch64), with ARM32 (ARMv7) builds also provided for Linux and Android. MIPS isn't supported. New standard release packages include the media server and local Whisper; legacy no-media builds omit both. The server is best left on; while it is off, connected apps show what they read before.

The CloudDrive2 app on a Mac, a Windows PC, an Android TV box and other devices can also serve its own libraries to your other devices; see Libraries served by an app.

The server reads the clouds and local folders added to its own CloudDrive2, so add the cloud storage your media is on to that CloudDrive2 first. Posters, people's photos and other pictures are kept on the server, with a picture limit of at least 10 GB; leave enough disk space for them.

Plans it needs

The CloudDrive account the server is signed in to needs both a core plan (monthly, yearly or lifetime; not Lifetime Lite) and App Pro; without either one, no library is scanned or opened. When the core plan runs out the media server stops serving, and starts again once it is renewed. A CloudDrive2 app that connects to the server needs App Pro on its own device. Emby and Jellyfin players and browsers are covered by the server account's plans and need nothing of their own. See Plans and pricing.

Getting started

Turning on the media server

  1. Sign in and add your clouds

    In the core service's web interface, sign in to a CloudDrive account that has both a core plan and App Pro, and add the cloud storage your media is on. The signed-in account owns the libraries.

  2. Set up the Sync folder

    The server exchanges libraries and scanned data with the apps through the CloudDrive2 Sync folder. In the CloudDrive2 app on any device, turn on Sync progress and choose where to keep it; that cloud must also be added to the server's CloudDrive2. If no app has set it up yet, turn the switch on first, then choose a storage under the Libraries tab and the page makes the folder there.

  3. Turn it on

    Click Media in the web interface's sidebar, then the Media Server button on that page, and turn on the Media Server switch under Overview.

  4. Add libraries

    Libraries already made in the apps appear by themselves. You can also add them under Libraries. The server starts scanning, and its progress shows under Overview and Libraries.

  5. Connect your devices

    Choose the server in a CloudDrive2 app (see CloudDrive2 apps), add it in a player (see Emby and Jellyfin players), or open the Media page in a browser (see Watching in a browser).

Messages on the page
  • "This CloudDrive doesn't include the media server.": update the core service.
  • "The Media Server needs both a core plan (monthly, yearly or lifetime) and App Pro.": when the account lacks either one, the page shows only this notice and a link to the plans.
  • "The signed-in account doesn't have App Pro, so no library is scanned or opened.": the Media Server needs App Pro besides the core plan.
  • "The signed-in account has no core plan with the Media Server, so no library is scanned or opened.": it needs a monthly, yearly or lifetime plan; Lifetime Lite doesn't include the media server.
  • "Couldn't check the plan online": check the server's internet connection.
  • "No storage holds this account's CloudDrive2 Sync folder.": make it under the Libraries tab, or see step 2 above.
The media interface

Once it's on, Media Interface at the foot of the web interface's sidebar switches to the apps' layout: a sidebar with Home, Favorites, Search, each library, Titles to Confirm, Files, Tasks, Media Server and Settings. File Manager switches back. In a phone's browser, the media interface has a tab bar at the bottom, and Media Server is in the menu at the top right of the media pages.

Management

The Media Server page

Only the core service's administrator can open this page. While the server is off, it shows Overview alone.

TabWhat it holds
OverviewThe Media Server switch, its status, the account, the Sync folder, the version, and a summary of the libraries, identification and the pictures' space.
LibrariesAdd, edit, reorder and delete libraries; each library's titles, scan progress and Scan now; Import from Emby or Jellyfin…; Export Libraries… and Import Libraries…; Resume and watched (minimum and maximum resume percentage). See Libraries and identification.
IdentificationLook up titles on TMDB (on by default), TMDB's API and image addresses, Test; Look up anime on Bangumi too (on by default); Look up music on MusicBrainz and Look up books on Open Library (on by default); AI identification and its model calls a day; each library's identified and to-confirm counts.
Users & devicesProfiles, paired devices and pairing codes, Emby and Jellyfin players' sign-in, Quick Connect, Emby API for other apps, Away from home. See apps, players, profiles, Emby API and away from home.
Scanning & storageScan on the server; how scanned data and pictures are shared with the apps; the space taken by library data and pictures, Picture limit (10 GB, 50 GB, 100 GB or none), Clear library data.
AI subtitlesThe AI subtitles switch, the speech recognition and translation services and their keys, the whisper models on the server, the subtitle delay, Test recognition and Test translation. See AI subtitles.

Libraries

Libraries and identification

The 1.2.0 public beta reads season.nfo in season folders, including season names, overviews, air dates, ratings and artwork references. It also supports root-level artwork such as season01-poster.jpg. Show pages display the season posters together, keeping a season poster separate from the show poster even for a single-season show.

The server's libraries are this CloudDrive account's libraries: add or change one on the web page and every device gets it; change one in an app and the server follows. Titles are identified and organized by the apps' rules; see How videos are recognized, Scraping and matching, Recognition words and Shelves.

Editing a library

  • The editor has the apps' library settings: name, type, folders, private library, look up online, information language, prefer online information, detect media info while identifying, video frames when there is no poster, save info and artwork beside the media, recognition words, shelves, and Scan this library on this server. Folders are chosen from this CloudDrive2 with the web interface's folder picker.
  • The listing speed (1 to 10 a second or no limit; 2 a second by default) and Scan again are the server's own settings and don't change your devices. The cover and caching files on a device are set in the apps only.
  • Private libraries show only after the PIN is entered on the page. Once unlocked, they also show in the sidebar and on Home of the Media pages, in this browser only, until you click Lock; they lock by themselves about 10 minutes after the last CloudDrive page in this browser is closed. The PIN can also be set, changed or removed on this page, and set right there when a library is made private.
  • The server scans one library at a time. Scan now reads that library's folders again at once.

Scan on the server

Scan on the server, under Scanning & storage, is off by default. When it is on, the server scans every library, and phones, tablets and TVs that keep their own libraries instead of connecting to the server wait for its results rather than scanning themselves. A library you later set to scan on a particular device keeps that device. The devices need Sync libraries across devices and Sync scanned data across devices turned on; see One device scans a library.

The server can also scan just some libraries: turn on Scan this library on this server in a library's editor, as Scan this library on this device works in the apps. The row says which device scans the library now; while Scan on the server is on, the switch stays on and can't be changed. Scan now always has the server scan the library at once.

Resume and watched

Minimum resume percentage (5% by default) and Maximum resume percentage (95% by default), under Libraries, are for Emby and Jellyfin players and the web player. A video stopped before the minimum keeps no place to resume from, and the place it had is removed; stopped after the maximum, it is marked watched. A watched video played again keeps its mark, and gets a place to resume from when stopped part way; seeking back to the start and closing clears the place. CloudDrive2 apps use the percentages in their own media library settings.

AI subtitles

Important: use external speech-recognition APIs on low-end devices

On low-end TV boxes and some older ARM32 devices, even Whisper Base remains slow with CPU optimizations enabled; generating subtitles can take longer than playing the video. Base also has very low recognition accuracy for film and TV dialogue, especially with background music or unclear speech. Faster processing does not improve the model’s accuracy.

For these devices, we strongly recommend external speech-recognition APIs instead of local Whisper models. See remote API setup.

The media server generates subtitles for library videos in the background, without playing them. It recognises the speech in a video, or reads the subtitles the video carries, translates them and saves the subtitle file beside the video for your devices and players to use. The server does not provide live subtitles during playback. The formats and options are the apps'; see AI subtitle translation.

  • Turn it on under Media Server → AI subtitles and choose the speech recognition and translation services. Recognition can use a remote service or run on the server with Whisper. The standard 1.2.0-beta core packages include local Whisper, including ARM32 Linux and Android builds; download a model before first use. Legacy no-media builds do not provide this feature. The keys are kept on the server.
  • Click Generate AI subtitles on a title's page, or select several titles in a library and add them. Videos added from a CloudDrive2 app connected to the server are made by the server too, with the server's own services and keys.
  • Progress is under AI subtitles on the Tasks page: change the order, pause or cancel a video, and see how long each took. A film in several parts gets subtitles for every part.
  • The ARM32 Linux and Android cores use optimized Whisper CPU operations. Linux automatically enables acceleration when the processor supports NEON and VFPv4, with a compatible implementation for older CPUs. This also works automatically in Docker, with no extra acceleration options; see AI subtitles in Docker.
  • Run Test recognition first to see how long 25 seconds of audio takes, the speed relative to playback, the thread count and whether the CPU or GPU was used. A speed below 1× means generation takes longer than playback, but still works for background jobs. Speed depends on the processor, model, thread count and available resources; compare thread settings using the test before choosing one.

Identification

  • TMDB: on by default on the server, with no API key of your own needed. The API address is api.tmdb.org by default, which can be reached from mainland China; api.themoviedb.org or your own proxy address can be chosen instead. The server fetches TMDB's pictures and hands them to your devices and players, so they never need to reach TMDB themselves.
  • Titles to Confirm: titles the automatic match can't settle can be confirmed on the web interface's Titles to Confirm page or in the apps. Once you choose, the server fetches the title's information at once, and every device sees it.
  • Identify…, Edit Metadata… and Detect media info: done and written by the server when used in a browser; identifying a title and detecting media info in a connected app are done by the server too.
  • AI identification: off by default. Choose the service, the model, the API key, and the libraries the model reads (never a private library, nor one with lookup off). Model calls a day can be chosen from a list, typed as a number, or set to no limit; 1,000 by default. See AI identification.

Importing from Emby or Jellyfin

Under Libraries, click Import from Emby or Jellyfin… and sign in to your server. Its libraries whose folders are on this CloudDrive2's cloud storage become libraries here, read from that server: its titles, their text and pictures, what you played there, and its people. Nothing on that server is changed. See Import from Emby or Jellyfin.

Clear library data

Deletes the titles, details and pictures the server has read, then reads the libraries again. The libraries, identifications and watch progress are kept.

Apps

Connecting the CloudDrive2 apps

The CloudDrive2 apps on Mac, iPhone, iPad, Apple TV, Apple Vision Pro, Android phones, tablets and TVs, Meta Quest and Windows PCs can connect to the media server. The setting is Use a media server under Settings → Media Libraries → Sync, and it needs App Pro on the device.

Finding the server

  • The same CloudDrive account: the server writes its addresses into the Sync folder, so a device signed in to the same account finds it by itself and shows "Found in the Sync folder". Tap Use; no pairing code is needed.
  • A pairing code: a device without the Sync folder, or signed in to another account, taps Pair with a code…. The dialog lists the servers on this network, or you type the server's address on your home network, such as 192.168.1.20. Make the code on the web page under Users & devices → Paired devices → New pairing code; it works once and for a limited time.

While using the server

  • The device shows the server's libraries and stops scanning on its own. What it scanned is kept, ready for when you switch back to This device.
  • Identify, Keep This Match, look up again, Detect media info, library edits, favorites, marking watched and skip intro and ending times are done and kept by the server, and every device sees them. The audio track and subtitle chosen for a title follow it to your other devices too.
  • A library whose metadata language is Follow interface shows titles and plots in each device's own interface language: a phone in Chinese and a TV in English on the same server each see their own. After an interface language switch, the libraries show the new language at once, and the server looks up what it lacks in that language first.
  • To play, the device reads the video from the cloud through its own CloudDrive2; see How titles play.
  • When the server has profiles, the app asks "Who's watching?"; see Profiles.

When the server can't be reached

The app says "Can't reach the server. Showing what was read before; trying again every 30 seconds." Pages opened before can still be browsed, and the app reconnects when the server is back. Away from home, devices try the outside addresses the server wrote into the Sync folder; see Away from home.

Removing a device

Paired devices on the web page shows each device's platform, how it paired and when it was last seen; after Remove it has to pair again to connect. Forget in an app removes the server from that device, which can then pair with it again only with a new code.

Versions

When the server needs a newer app, the app says "The server needs a newer CloudDrive app." Keep the server and the apps up to date.

Libraries served by an app

Without a computer or NAS that is always on, a CloudDrive2 app can serve the libraries its own device scans to your other devices: turn on Serve these libraries to other devices under Settings → Media Server. The account needs both App Pro and a core plan with the Media Server.

  • Your other devices find it through the Sync folder and use it as they would a server; Emby and Jellyfin players can connect to its address on port 29798. The pairing code and the paired devices are on that page too.
  • A Mac and a Windows PC serve while the app runs, in the background and from the menu bar or tray as well. An Android phone, a TV box and a Meta Quest serve while the app's service runs; a TV box suits this best. An iPhone, iPad, Apple TV and Apple Vision Pro serve only while the app is open.
  • A device that is using a media server can't serve at the same time: only the libraries a device scans itself can be served.

Other players

Emby and Jellyfin players

Infuse, SenPlayer and Jellyfin and Emby players can connect to the media server as they would to a Jellyfin server. Players need no plan of their own; the server account's plans cover them.

  1. Add the server

    Add a Jellyfin server in the player, with the address of the core service's web interface, such as http://192.168.1.20:19798. In an Emby player, add an Emby server at the same address.

  2. Sign in

    Use the user name shown under Users & devices → Emby and Jellyfin players on the web page with the media password set there, or a profile's name with its player password. The media password is at least 6 characters, is used only by players, and isn't the core service's administrator password.

  3. Or use Quick Connect

    Choose Quick Connect in a Jellyfin player and it shows a 6-digit code. Allow it under Quick Connect on the web page, or type the code there. A code works for 10 minutes. Without a media password, this is the only way a player can sign in.

What players can do

  • Browse the libraries the signed-in profile sees, private libraries excepted: films, shows with their seasons and episodes, collections, albums and artists, books, shelves, people, search and filters.
  • Play the original files, with subtitle files beside them. The server never transcodes and doesn't cap bitrates.
  • Keep progress, watched state and favorites per signed-in profile, to carry on in other players and devices.
  • Skip intros and endings in Jellyfin players that support media segments, at the times set in the apps.

Things to know

  • Clients that rely on the server to transcode (some official TV apps, for example) can't play the formats they don't support.
  • To protect cloud links, the server relays files from every cloud provider to third-party players and never gives them provider-direct URLs. Away from home, turn on Relay video for clients outside the home network. See How titles play.
  • From outside, Infuse and other players refuse a self-signed certificate: use a certificate for your own domain or a reverse proxy. See Away from home.
  • On your home network, a player's sign-in page lists who can sign in: the owner once a media password is set, and the profiles with a player password.

Other tools

Emby API for other apps

Tools such as MoviePilot can connect to the media server as they would to an Emby server: they read the libraries' titles and people, and fill in the cast's names, biographies and photos. It is under Users & devices → Emby API for other apps, off by default, and answers while the media server is on. It is the apps' Emby API, served by a server that stays on.

Connecting a tool

  1. Turn on Serve the Emby API.
  2. Press New key… to make a key for each tool that connects, and choose the libraries it reads and writes (All video libraries, or some of them); with Private libraries too, private libraries are included. The key is shown only once: copy it then.
  3. In the tool, choose Emby as the server type, then enter one of the server addresses listed on the page (the core service's addresses) and the key. For a tool that also signs a user in, the user name is the owner's name or admin, and the password is the media password.

Each key shows when it was made and last used, and its libraries can be changed or the key removed. Recent requests lists what tools asked lately and what the server answered, to check a connection.

What other apps send

  • People's names, biographies, photos and roles, and favorites. What tools send about people shows ahead of NFO files and TMDB, on every device.
  • It is kept on the server, not written into the media folders. Forget What Other Apps Sent removes it; the keys stay.
  • Follow links in a person's text: when what a tool wrote for a person is only links to TMDB, IMDb or Wikipedia, the biography, dates and photo are read from there. The ids in those links are sent to TMDB or Wikipedia.
Security

Keys travel in the address a tool calls, so keep them private. Through this API, tools reach the chosen libraries' titles and people only, never your files or accounts. Five wrong keys from one address within a minute make it wait a minute before the next try.

Browser

Watching in a browser

The Media page in the core service's web interface is the server's own media client, laid out like the apps' media screens: the wide layout on a computer and the phone layout on a phone. It browses as the owner, and its progress and favorites are the server's.

Pages

  • Home: the featured carousel, the libraries, Continue Watching, Next Up, Continue Listening, Continue Reading, and the newest of each library.
  • A library: posters, thumbnails, banners or a list; picture size; sorting; filters (play state, favorites, resolution, HDR, sound, video codec, file format, audio and subtitle languages, genres, tags, studios, status, rating, years; see Filters); folders; shelves and collections; selecting several; Go to Page. A music library browses by albums, artists and folders, a book library by books, authors, series and folders.
  • A title: Play or Resume, the trailer, watched, favorite; the version, video, audio and subtitle; seasons and episodes; the cast; collection and links; media info. Identify…, Edit Metadata… (posters, backdrops, logos and actors' photos included), Detect media info, Generate AI subtitles, Go to Library (opens the library at this title) and Show in Files (opens the folder that holds the file, with the file selected and scrolled into view; a show and an album folder open their own folder).
  • Live updates: titles a scan finds, identifications, pictures fetched later, favorites and watched marks appear on the open page without a reload.
  • Search, Favorites and History, and pages for people, albums, artists, books, authors and series. A search from a library's page looks in that library first, with a switch to all libraries; History also lists the albums of songs played to the end. A person's page has Identify and Edit…, and an actor's titles sort and filter as a library's do.
  • Music plays in a full player with the cover, lyrics, the queue, format badges and MusicBrainz credits; closed, it becomes a mini player at the bottom that carries on as you browse. Books open in the web interface's reader (EPUB, MOBI, AZW3, CBZ, CBR), PDF and text in the browser; the reading place is shared with the apps.

The player

Films and music on the Media pages play in the core service's web player. The web player is a feature of its own: videos, music, disc images and CUE sheets in the file manager open in it too, with no media server needed. For what it plays, what it needs from the browser and the computer, and how it compares with the apps' player, see the web player.

Played from a library, progress and watched marks sync with the server, so your other devices and the CloudDrive2 App see them; a show's intro and ending can be skipped, and the next episode plays when one ends.

Open it over HTTPS

With default browser settings, WebCodecs hardware decoding requires a secure context such as HTTPS or localhost. At http://<LAN address>, 4K HEVC and similar videos with audio unsupported by native browser playback may fall back to software decoding, causing dropped frames or stuttering. Safari supports more audio formats natively and is usually unaffected by this limitation. HTTPS is recommended; alternatively, configure Chrome or Edge to treat a specific trusted LAN address as secure so these browser capabilities work over HTTP. See hardware decoding in Chrome and Edge.

Parental control

The media interface can have a parental control code, kept in this browser. While it's locked, the code is asked for before Files, the file manager, Tasks, Settings, Identify, Edit Metadata and the media settings; Show in Files is hidden, and only titles within the highest rating show. It locks when the page is hidden and after the auto-lock time. See Parental control.

The browser's settings

Settings on the Media page are kept in this browser only: titles on a page (50 to 1,000, or all as you scroll), the picture size in grids and lists, and the quality badges on posters. A library's settings button opens that library's editor on the Media Server page.

Playback

How titles play

Third-party players and the Media web page receive authenticated CloudDrive2 playback URLs, not cloud-provider direct links. CloudDrive2 apps can play through their own CloudDrive2 with the same cloud account. Only trusted devices authenticated as the owner or paired through the Sync folder can receive a cloud-provider link from the server.

WayWhen it is usedThrough the server
The device's own CloudDrive2A CloudDrive2 app whose CloudDrive2 has the same cloud account. Exactly as when it plays its own library.No
A cloud link for the owner's trusted deviceOnly trusted CloudDrive2 devices authenticated as the owner or paired through the Sync folder, when the cloud permits direct playback. Never third-party players, media logins or devices paired with a code.No
Relayed by the serverAlways used by Infuse, SenPlayer, Emby and Jellyfin players and the Media web page, whether or not the cloud supports direct links. Also available to CloudDrive2 apps that need the server to read the file.Yes. Away from home, only with Relay video for clients outside the home network turned on

The home network

Connections from private addresses (192.168.x.x, 10.x.x.x and the like) and local IPv6 addresses count as the home network. Connections through a carrier's shared address, through Tailscale and similar networks, or from a public address count as outside it.

What relaying costs

Relay video for clients outside the home network is off by default. Files played by third-party players and the Media web page always pass through the server; away from home, they cannot play while this switch is off. When it is on, the server's upload speed has to exceed the title's bitrate for smooth playback. CloudDrive2 apps playing through their own CloudDrive2 with the same cloud account, or a cloud link available to the owner's trusted device, do not need relay.

Family

Profiles

Under Users & devices → Profiles, add a profile for each family member and child who shares these libraries. Each profile has its own progress and favorites and sees only the libraries chosen for it. The CloudDrive account itself is the owner, and the owner's code is the libraries' PIN. Up to 32 profiles.

A profile's settings

  • Name, colour or picture: the picture can be a JPEG or PNG of up to 2 MB.
  • Libraries: the libraries it sees, or All libraries (those added later too).
  • Private libraries open with the PIN: without it, the profile can't open private libraries.
  • Highest rating: no limit, G, PG, PG-13 or R, and whether to Show titles without a rating. When a device's own parental control sets a rating too, the stricter one applies.
  • Code: 4 digits, optional, asked for before a device picks the profile. After 5 wrong tries, wait 5 minutes.
  • Player password: optional, at least 6 characters. Emby and Jellyfin players sign in with the profile's name and this password.

Which profile a device uses

  • Under Paired devices, set each device to the owner, a profile, or Ask who is watching. A new pairing code can also be made for a profile, which the device paired with it then uses.
  • A device set to ask shows "Who's watching?" when it opens the libraries and shows nothing until one is picked; it asks again after the server restarts.
  • Quick Connect chooses which profile the player signs in as.

Progress and favorites

A profile's progress, watched state and favorites are kept on the server, apart from the owner's, and never go into the owner's Sync progress. Removing a profile removes its progress, favorites and picture, and the devices that used it ask again.

Away

Away from home

Away from home, your devices reach the server at the addresses it writes into the Sync folder. The settings are under Users & devices → Away from home.

Making the server reachable from outside

  • Router mapping: forward port 19799 (HTTPS) on your router, or use the core service's UPnP port mapping (when the router supports UPnP or PCP). The page shows the current mapping.
  • Addresses from outside: domain names or IPv6 addresses that reach this server from outside, with the scheme and port, such as https://nas.example.com:19799; up to 8.
  • Addresses devices try: the page lists the addresses devices try away from home.

Certificates

The CloudDrive2 apps note the server's certificate when they pair, so they connect securely even with the core service's own certificate. Infuse and other players accept only a trusted certificate: set one up for your domain, or use a reverse proxy.

Relay video for clients outside the home network

Off by default. Third-party players and the Media web page require it for playback away from home, for every cloud provider. See How titles play.

Security

Security

The media server and the file service share one port. This is how they are kept apart.

  • Devices and players reach the libraries only: what a paired device or a signed-in player is given reads the libraries and nothing else. It opens no files, no WebDAV and no download links, and can't manage the core service.
  • The media password isn't the administrator password: the media password and player passwords are only for players. Only the core service's administrator can open the Media Server page.
  • The PIN is checked on the server: the private libraries' PIN is never sent to other devices, and wrong tries lock that device for a while.
  • Pairing: a pairing code works once, and 5 wrong codes in a row cancel every unused code. Removing a device also stops the links it was given.
When it can be reached from outside

The page warns when the server can be reached from outside while file downloads (/static) answer without a signed link. Turn on Require signed download links in the core service's settings, and give the administrator account a strong password and two-factor sign-in. The media server, your devices and signed download links aren't affected by that setting.

The Sync folder holds the server's addresses and pairing details, which your devices use to pair by themselves. Anyone who can open that cloud storage can read them too. To revoke them, click Change the pairing key under Paired devices and remove any device you don't recognise.

Privacy

What leaves the server

  • CloudDrive's servers: receive nothing from your libraries; only the account's plans are checked.
  • TMDB and Bangumi: with lookup on, titles' names and years.
  • MusicBrainz: when on, albums' names, artists, barcodes and catalogue numbers, and a CD rip's track lengths.
  • Open Library: when on, for book libraries with online lookup, books' titles, authors and ISBNs.
  • The AI service you choose: only with AI identification on, the path below the library folder and the file names of unidentified items in the chosen libraries, and the tags, CUE sheets, SACD text or OPF read from their files. Nothing from private libraries is sent. Some services may train models on what is sent under a free plan; DeepSeek stores data in mainland China.
  • Your Emby or Jellyfin server: only while importing, read with your sign-in: its libraries, titles, people, pictures and what you played. Nothing is written to it.
  • MoviePilot and similar tools: only with the Emby API on, a tool holding a key reads and writes the titles and people of the libraries chosen for it.
  • The speech recognition and translation services you choose: only while AI subtitles are made. A remote recognition service is sent the video's sound, and a translation service the recognised text or the video's own subtitles. With whisper on the server, the sound never leaves the server.
  • Your cloud storage: the Sync folder holds the libraries' settings, scanned data, picture packs, and the server's addresses and pairing details. With Save info and artwork beside the media on, or after Edit Metadata…, NFO files and pictures are written into the titles' folders; subtitle files made by AI subtitles are saved beside the videos.
  • Your devices and players: see the libraries chosen for their profile, the titles' information and pictures, and the file paths and authenticated playback URLs needed to play. Third-party players never receive cloud-provider direct links.

No file is ever deleted. The server only reads the libraries' folders; it writes only what you turned on with Save info and artwork beside the media, what you save with Edit Metadata…, the subtitle files AI subtitles make, and the files in the Sync folder.

FAQ

Frequently asked questions

Which plans does the media server need?

The CloudDrive account the server is signed in to needs both a core plan (monthly, yearly or lifetime; not Lifetime Lite) and App Pro; with only one of them the media server can't be used. Each device whose CloudDrive2 app connects to the server needs App Pro of its own. Infuse, SenPlayer, Emby and Jellyfin players and browsers need nothing of their own. When the core plan runs out the media server stops serving, and starts again once it is renewed.

I have no NAS. Can a TV box or a computer be the server?

Yes. In the CloudDrive2 app on that device, turn on Settings → Media Server → Serve these libraries to other devices, and your other devices and Emby and Jellyfin players can read the libraries it scans. A computer and a TV box serve whenever the app runs; an iPhone, iPad, Apple TV and Apple Vision Pro serve only while the app is open. See Libraries served by an app.

The app doesn't find the server

To find it by itself, both sides must be signed in to the same CloudDrive account, and the device must have Sync progress on and reach the cloud that holds CloudDrive2 Sync. Otherwise, tap Pair with a code… under Settings → Media Libraries → Sync → Use a media server, make a code under Paired devices on the web page, and pick the server the dialog lists or type its address. The device must be able to reach the core service's port (19798 by default).

Once connected, does each device still scan?

No. A connected device shows the server's libraries; it neither scans nor looks anything up online. Devices that keep their own libraries can take the server's results instead of scanning once Scan on the server is turned on.

A player signs in, but titles on 115 won't play

Third-party playback is always relayed by the server, for 115 and every other cloud provider; provider-direct links are never given to the player. Away from home, turn on Relay video for clients outside the home network under Away from home. Connecting through Tailscale or a similar network counts as away from home. On the home network, check that the server itself can read the file and that the player supports its format.

Infuse can't connect from outside

Infuse and similar players refuse self-signed certificates. Set up a trusted certificate for your domain, or a reverse proxy, and use that https address in the player. The CloudDrive2 apps aren't affected.

Does the server transcode?

No. Every client plays the original file, decoded by the player and its device. Third-party players always receive original files relayed by the server, so playback depends on its network and processing capacity. CloudDrive2 apps playing through their own CloudDrive2 with the same cloud account use no media-server relay bandwidth. For a format your player can't play, use one that can, such as Infuse, SenPlayer or the CloudDrive2 apps.

Some titles won't play in the browser, or stutter

With default browser settings, open the web interface over HTTPS or localhost to enable WebCodecs hardware decoding; otherwise some 4K HEVC videos may drop frames when decoded in software (in Safari most videos are fine over HTTP). On a home network you can instead configure Chrome or Edge to treat a specific trusted HTTP LAN address as secure: see how. Browsers can't play DVDs, VC-1 and some other formats: click Copy link and play it in VLC, IINA, PotPlayer or Infuse, click Download, or play it in the CloudDrive2 App. What each browser needs is on the web player page.

I already have an Emby or Jellyfin server

When the media is in your cloud storage, click Import from Emby or Jellyfin… under Libraries to use what that server has already organized: information, pictures and what you played, with no new scan.

Can MoviePilot connect to the media server?

Yes. Turn on the API under Users & devices → Emby API for other apps, make a key for MoviePilot, and in MoviePilot choose Emby as the server type and enter a server address listed on the page and the key. See Emby API for other apps.

What happens while the server is off?

Connected apps show what they read before, try again every 30 seconds, and reconnect when the server is back. Players and browsers can't be used while it's off. You can also switch an app back to This device under Settings → Media Libraries → Sync → Use a media server at any time, and let the device organize the libraries itself.

Can the children see everything?

Add a profile for them with only the suitable libraries, a highest rating and a code, then set their devices to that profile, or to Ask who is watching. See Profiles.

Report a problem

File problems as GitHub issues, where they are recorded and tracked; you can also report them in the Telegram group or by email.