nightshift
Nightshift is a self-hosted web UI that pulls music from Spotify, SoundCloud, and YouTube into a local library — tagged, organized, synced nightly.
Ficha actualizada 22 sept 2026, 20:53 · upstream 22 sept 2026, 20:37 · release v1.7.5
Qué es nightshift
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Nightshift is a self-hosted web interface that aggregates music from three major streaming platforms: Spotify, SoundCloud, and YouTube. It pulls tracks and playlists from these sources, organizes them locally, tags them using beets, and keeps everything up to date automatically every night without requiring manual intervention.
The tool works alongside media servers like Navidrome or Jellyfin by reading a plain folder of audio files rather than relying on streaming APIs. This gives users full control over their library structure while keeping the music sources synchronized in one place.
Nightshift provides three main features: automatic playlist syncing across all three platforms, intelligent tagging via beets with genre filtering, and cookie-based authentication that detects when user sessions expire so playlists can still be refreshed.
- Keep a unified music library synced from Spotify, SoundCloud, and YouTube without manual transfers
- Organize and tag thousands of tracks in one place using beets with genre filtering
- Automatically refresh playlists across multiple platforms when user sessions expire
- Provide a web interface for managing media server playlists and downloading tracks
- Support multiple users via admin accounts while keeping regular users isolated from settings
- Run on bare metal or Docker containers without requiring external API access
- Three sources (Spotify, SoundCloud, YouTube) are unified into a single interface with automatic pipeline selection
- Cookie-based session detection prevents playlists from being lost when user sessions expire on platforms like YouTube
- Beets integration provides intelligent tagging with genre filtering and duplicate handling
- Natively supports iOS and Android apps for full functionality without server-side setup
- Day/night theme with seven languages makes it accessible to a wide audience
- Configurable nightly sync schedule allows flexible timing of automatic updates
- Cookie-based session detection may not work reliably on all platforms or for certain content types, as the cookie jar can expire independently of the user's active session
- Beets requires a full library scan to update tags after changes, which is a one-time operation rather than an incremental process
- The tool relies on external dependencies (ffmpeg, yt-dlp, spotDL) that must be installed and kept updated separately from Nightshift itself
- Cookie-based authentication does not support all platforms or content types, particularly those with more complex session management
- There is no built-in playlist creation feature — users must manually add tracks to playlists through the web interface
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Nightshift runs on Docker by default using a Python application. The docker-compose.yml file mounts the config directory and music library folder, with environment variables for user ID, group ID, timezone, and cookie paths. For bare-metal deployment, install required dependencies (ffmpeg, yt-dlp) in PATH before running the application. A systemd service can be created to run Nightshift on a server without manual intervention. The app uses Python's built-in waitress WSGI server by default for production deployments.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.