Server
Server
The TakeoutFM server, known as Takeout, indexes organized media files in S3 (or local) using MusicBrainz, ListenBrainz, Last.fm, Fanart.tv, and TMDB. Indexed media is browsed using Takeout APIs and securely streamed directly from S3 or local storage. Music, movies, TV shows, podcasts, and radio are supported. Takeout is built as a single binary that includes all server functionality including media syncing, streaming, REST APIs, and a builtin web UI.
Features
- Music with rich metadata, album and artist artwork
- Movies and TV shows with cast, crew and posters
- Podcasts with series and episode metadata
- Internet radio stations (pls)
- Watch/listen progress for movies, TV shows, and podcasts
- Statistics for watch/listens with aggregations
- Media streaming indirectly from S3 using pre-signed time-based URLs
- Media streaming for local files using JWT tokens
- Powerful search and playlists
- User-based access control using cookies, JWT tokens, and 2FA with TOTP
- Server-based playlist API using jsonpatch
- XSPF (“spiff”) and JSPF playlists
- Supports caching of API metadata for faster (re)syncing
- Image proxy with pre-caching support
- Supports systemd
- REST APIs are available to build custom interfaces
- Written in Go, with SQLite3, Bleve, Viper, and Cobra