{"repo":"soggy8/musikat","free":true,"listed":false,"github":"https://github.com/soggy8/musikat","clone":"git clone https://github.com/soggy8/musikat.git","description":"🎵 Search Spotify and download music from YouTube to your Navidrome server with automatic metadata tagging","language":"Python","stars":162,"topics":["fastapi","javascript","music-downloader","music-server","navidrome","python","self-hosted","spotify","youtube"],"license":"MIT","category":"self-hosted-apps","readme_excerpt":"Musikat — Navidrome and local downloads Search Deezer (default, no API key) or Spotify (optional credentials) for tracks and albums, download audio from YouTube with yt-dlp , apply ID3 tags and artwork, then save to your browser downloads or copy into one or more Navidrome music library folders on the server. Choose the catalog in the web UI ( Catalog ) or set DEFAULT METADATA PROVIDER in .env . Screenshots Main Interface Download Queue with Progress Bars Features - Search Deezer or Spotify for tracks and albums - Download from YouTube using catalog metadata; optional YouTube cookies when YouTube blocks automation - ID3 tagging (artist, album, cover art) via the metadata service - Download to: local (browser) or any configured Navidrome music root (multiple libraries supported — no need to run separate app instances) - Web UI with download queue and status polling - Background library sync (optional): scan Navidrome folders and align “already downloaded” state with the catalog Architecture Layer Technology -------- ------------ Frontend HTML, CSS, vanilla JavaScript Backend Python FastAPI Catalog Deezer (public search) or Spotify Web API (optional) Audio yt-dlp + FFmpeg Tags mutagen Server library Files copied under Navidrome music path(s); optional Navidrome API for scans Prerequisites Docker: Docker and Docker Compose Manual: Python 3.8+ (3.11+ recommended), FFmpeg on PATH , optional Navidrome instance Spotify in the UI requires SPOTIFY CLIENT ID and SPOTIFY CLIENT SECRET i","default_branch":null,"files":null,"tree":[],"storefront":"/r/soggy8","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/soggy8/musikat/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}