About this project

PlaylistPillar is a self-hosted music catalog engine distributed as a Docker-based application. Its stated goal is to turn streaming-platform playlists into durable, browsable local archives while preserving the context of a playlist rather than treating tracks as disposable files. Core approach - Metadata-first archiving: exports are described as including embedded ID3 tags, album art (JPEG/PNG) and release-year information, with cross-references against public discography databases such as MusicBrainz and Discogs. - Preservation of structure: original playlist ordering, track metadata and artwork are retained, so a local copy still shows cover, artist, album and track number even if a track later disappears from a streaming service. - Playlist diff engine: a previously archived playlist can be re-scanned to see which tracks were removed, added or changed since the last export. Deployment and interface - Docker-native: runs in any Docker environment via a single compose.yaml configuration, with no system-level dependencies described. - Responsive web dashboard: manage archives, view storage usage and browse imported playlists from any device. - Multi-language interface: dashboard and export logs are listed as available in English, Spanish, French, German, Japanese and Portuguese. - Background worker: queued playlists are processed with rate-limiting, retries and progress tracking without blocking the browser session. Export and storage details - Export formats: structured folders (Artist / Album / Track.mp3) or a single compressed .pillar bundle with embedded metadata. - Storage estimates given in the README: roughly 80-120 MB per hour of music at 320 kbps, plus 1-3 MB per album for artwork; a 50-song playlist typically uses 300-450 MB. - Technical notes: token-bucket request queuing, SQLite by default with optional PostgreSQL, album covers compressed to WebP with PNG fallback, and SHA-256 checksums recorded in a sidecar manifest for integrity verification. Getting started 1. Configure the environment: provide an optional streaming-platform API token for faster metadata enrichment and set the storage volume in compose.yaml. 2. Launch the dashboard, then paste a playlist link or upload a .txt file containing URLs. 3. The system processes tracks in the background, preserving artwork and metadata, and notifies via the dashboard when the archive is ready. Repository layout The README describes a backend (Python, Flask + Celery) with workers, models and a metadata enricher; a Vue.js frontend with components and locale files; docker files; docs; tests; and an MIT license. Roadmap items mentioned for 2026 include batch import wizards, offline AI tagging for genre and mood suggestions, automatic weekly playlist mirroring, and a mobile companion app. Support and compliance The README advertises a diagnostics module that generates a support-ready snapshot of configuration, logs, container health and network status, with a stated typical response time under two hours and live chat during business hours. It also states that API tokens are encrypted at rest with AES-256 and never logged, and that anonymous public metadata lookups are an option. A disclaimer notes the project is intended for personal archival use and does not bypass geographic restrictions, DRM or subscription tiers, with users responsible for complying with integrated platforms' terms of service.