A LITTLE GUIDANCE
Your private cinema, ready to settle into.
Nocturne connects a secure WebDAV library to your browser’s own video player. Your connection, artwork, captions and watching progress are saved to your account.
Back to your cinemaConnect once. Come back anytime.
- Open Nocturne in Safari on your iPhone, iPad or Mac, or in Chrome. Sign in with your own ChatGPT account. Each account has its own connections, Library, artwork and watch history.
- Choose Connect your library. For Real-Debrid, enter
https://dav.real-debrid.com/and your WebDAV username and password from your Real-Debrid account. - Choose Connect & save. Nocturne tests the credentials before encrypting and saving them.
- Open folders, or choose Index library to walk all subfolders. Keep the tab open during indexing; the button pauses the scan, and another click resumes it. Search includes the folders that have been indexed.
- Tap a film. The browser’s native video controls handle play, pause and scrubbing. If autoplay is blocked, tap the native play button.
Real-Debrid’s terms require Remote Traffic for dedicated server, VPS or cloud access. This hosted site sends WebDAV traffic from its server, so ordinary Premium access alone may not work. A 403 response may indicate Remote Traffic or IP restrictions. Nocturne cannot bypass those restrictions.
You don’t need to keep a tab open to preserve your login. Your encrypted server connection is restored after the website reopens. If your ChatGPT session expires, sign in again; your saved WebDAV connection remains. Changing or deleting your WebDAV password requires updating the saved connection.
For another WebDAV provider, the operator must add its exact HTTPS hostname to WEBDAV_ALLOWED_HOSTS. Redirect hosts must be approved separately. These allowlists are intentionally server-side.
Your Library. Your choices.
Use the bookmark button or the three-dot menu on any folder or video to Add to Library. Open Library in the sidebar or mobile navigation to find your saved items across connections. Opening a saved folder takes you to its contents. Saving a folder creates a shortcut; its children do not need to be saved individually. Search and sorting work within Library.
Remove from Library removes the shortcut only. Your server files, custom artwork, favorites and viewing progress remain. Saved items are tied to your account and persist after reopening the site.
Make it yours.
- Open the three-dot menu on a film or folder and choose Add custom artwork or Edit artwork.
- Choose an image from Photos or Files, or import a public HTTPS image URL. URL import requires the image host to permit browser cross-origin access; otherwise save the image to your device and upload it.
- Adjust zoom and positioning, then save. The resulting poster is stored with that video or folder, independently of your browser cache.
- Use the heart in the player or the three-dot menu to add favorites. Use the three-dot menu to mark a title watched or unwatched.
Continue Watching and watch history update from actual playback. Progress saves every ten seconds, on pause, when the page is hidden, and when the player closes. If a write fails, a device-local progress copy retries on reconnection. Abrupt OS termination can still lose the last unsaved seconds.
Moving or renaming a file on the WebDAV server changes its identity. Artwork and history stay associated with its original path.
Captions, your way.
Open Subtitles below the video and import an SRT or WebVTT file. Matching sidecar subtitle files in the same indexed folder also appear automatically. Imported tracks are saved permanently. Choose a track or Off, adjust size, color, background, font, position and sync offset. A positive offset delays the text.
Embedded captions appear when the browser exposes them. If the optional compatibility service is connected, codec inspection can list embedded streams and extract supported text captions. Image-based subtitles such as PGS require OCR or burn-in and are not extracted as text.
Inline text-track styling is best-effort. Apple’s native fullscreen and PiP may use system caption appearance. On iPhone and iPad, check Accessibility → Subtitles & Captioning for the system-supported appearance.
What your browser can actually do.
| Feature | Category | What to expect |
|---|---|---|
| WebDAV browsing, posters, favorites, saved settings and progress | Implemented | Authenticated server routes, persistent database and object storage. Requires the configured server to accept this host’s traffic. |
| Native HTML5 playback, fullscreen and external text tracks | Implemented; media-dependent | Native controls remain visible. The device must support the file’s codecs and container. |
| 4K, HEVC and AV1 | Device/browser-dependent | Decoder support, profile, bitrate, file structure, hardware and network matter. Resolution alone never proves compatibility. |
| HDR10 and Dolby Vision | Device/browser/media-dependent | Best prospect on compatible Apple hardware in Safari with properly authored media. Direct playback preserves bytes, but does not certify HDR output. |
| Dolby Atmos and multichannel audio | Device/browser/audio-route-dependent | Codec and packaging support are essential. A TrueHD Atmos track in an MKV is not equivalent to compatible Dolby Digital Plus/JOC delivery. |
| Spatial Audio, AirPods Pro 3 and head tracking | Operating system-controlled | Use Apple’s system audio controls. No standard web API enables head tracking or verifies the complete Atmos output path. |
| Native Picture in Picture | Device/browser-dependent | Feature-detected standard or WebKit APIs. App switching and background continuation remain OS decisions. |
| MKV and unsupported audio/video | May need conversion | Some Chromium configurations can play MKV. Safari/native support must be tested. Container remux can help only if the underlying streams are supported. |
| Frame ratios and caption styling in Apple fullscreen | Limited by native player | Inline framing works. Native fullscreen can override page styling and retain the system presentation. |
| Force HDR/Atmos, enable head tracking, guarantee background playback | Not exposed by standard web APIs | Nocturne makes no fake quality or system-control claims. |
Safari and Chrome are different targets.
Safari on iPhone and iPad is the primary target for native Apple fullscreen and PiP. Safari on a compatible Mac is the preferred path for Apple media formats. Chrome on iPhone and iPad commonly uses WebKit, but browser-engine availability can vary by region and entitlement; the app uses capability checks rather than assuming every Chrome build is the same. Desktop Chrome uses Chromium’s media stack, so its supported containers and codecs can differ from Safari.
The compatibility panel reports canPlayType and display/API hints. These are advisory. They do not prove a specific Dolby Vision profile, seamless 4K decode, Atmos passthrough, or head tracking. Nocturne never relabels a filename as verified technical metadata.
Direct WebDAV streaming is a single source file, not an adaptive-bitrate ladder. Buffering is controlled by the native player and network. The optional HLS service creates a single compatibility rendition; it does not generate a multi-quality adaptive ladder.
Optional FFmpeg compatibility service.
The included compatibility/ project runs separately on a machine with FFmpeg. The hosted website’s Worker cannot execute FFmpeg itself. The service is optional; direct playback does not need it.
- Deploy
compatibility/compose.yamlon a Linux machine with Docker. Put it behind HTTPS and follow its README. Keep the source origin allowlist restricted to this site. - Generate a strong
COMPAT_TOKEN. Set the same secret in the service and the site. Set the site’sCOMPAT_URLto the HTTPS service origin. - A public site uses signed, expiring source tickets for the compatibility service. If the site is configured with a private hosting gateway, also configure its service-access token as
SITE_SERVICE_TOKENthrough the site’s secret settings. - Redeploy the saved site version after setting secrets. Reopen Settings → Playback compatibility; it should show “configured”.
- Open a film’s Quality & file panel. Try Remux to HLS for compatible streams. Choose Convert to SDR only when needed.
Remux copies accepted video/audio streams but cannot guarantee Dolby Vision or Atmos is preserved through every player/container combination. SDR conversion deliberately produces H.264/AAC and does not retain HDR, Dolby Vision or Atmos. It never modifies the original file.
Conversion generates segments progressively. Native seeking works in generated segments; for a position ahead of them, enter a new original-file start time and restart the job. The service applies concurrency, inactivity and disk limits. A long or high-bitrate movie can exceed the configured limits; adjust them to match your hardware.
Install on your iPhone or iPad.
In Safari, open Share → Add to Home Screen. Nocturne includes a manifest, standalone appearance, icons and a minimal offline shell. Private account data, artwork, credentials and media are not copied into service-worker caches. Reconnecting restores your account data from the server. A PWA cannot bypass media or background restrictions.
Run the source locally.
Use Node.js 22.13 or newer and the pinned package manager. The README includes exact commands for dependency installation, local D1 migrations, development, testing and production packaging. Do not expose the local development server or spoofable development identity headers to the internet.
corepack enable pnpm install --frozen-lockfile pnpm run build pnpm run db:local pnpm run dev
Local development simulates account sign-in only on loopback in the portable profile. Live hosting must preserve the Sites authentication gateway. For deployment outside Sites, use a trusted authenticated reverse proxy that strips incoming identity headers and injects verified identity. The included source is not a public anonymous media proxy.
Verification and practical limits.
Automated checks cover parsing, access controls, encryption, WebDAV byte ranges, subtitles and service validation. The project’s testing report records the checks actually run. Real-Debrid credentials were not supplied during development, so real-account streaming is not verified. Physical iPhone/iPad/Mac testing is required for 4K/HDR/Dolby Vision/Atmos, audio routing, native fullscreen, PiP and Wi-Fi/cellular transitions.
If a file stalls: check connection testing, network throughput, the source container and audio/video codecs. High resolution does not automatically mean the browser can decode the file. Use the explicit compatibility options when appropriate.
Reference material: Apple HTTP Live Streaming, WebKit video policies, Chromium audio/video, and Real-Debrid terms.