Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

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

Ver códigoProblemas y ayudaRepositorio ↗Sitio oficial
00

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.

CASOS DE USO
  • 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
PUNTOS DESTACADOS
  • 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
PRECAUCIONES
  • 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
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU4 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Listo para automatizar

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.

✓Dockerfile
✓Compose
✓One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Next.jsPython
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
8765
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

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.