Skip to content

Take your personal media collection with you, on your own terms, and enjoy with free software.

License

Notifications You must be signed in to change notification settings

takeoutfm/takeout

Repository files navigation

TakeoutFM

TakeoutFM is a copyleft, secure, and private media system that allows you to manage and stream your media on your own terms. It has a small and fast server designed to run with minimal resources and mobile, watch, tv, and console apps for media streaming on your devices. Support for media in the cloud using S3 is a primary design goal and local media files are supported as well. See takeoutfm.com for further details.

Takeout

The TakeoutFM server, known as Takeout, is a copyleft media server that indexes organized media files in S3 (or local) using MusicBrainz, Last.fm, Fanart.tv, and TMDB. Media is browsed using Takeout and securely streamed directly from S3 or local files. Music, movies, podcasts, and radio are supported.

Takeout is built as a single binary that includes all server functionality include media syncing, streaming, REST API, and a builtin web UI.

Features

  • Free and open source with AGPLv3 license
  • Written in Go, with SQLite3, Bleve, Viper, and Cobra
  • Music metadata from MusicBrainz and Last.fm
  • Album covers from the Cover Art Archive
  • Artist artwork from Fanart.tv
  • Powerful search and playlists
  • Movie metadata and artwork from The Movie Database (TMDB)
  • Podcasts with series and episode metadata
  • Internet radio stations (pls)
  • Media streaming directly from S3 using pre-signed time-based URLs
  • Media streaming for local files using JWT tokens
  • User-based access control using cookies, JWT tokens, and 2FA using TOTP
  • Server-based playlist API using jsonpatch
  • XSPF ("spiff") and JSPF playlists
  • Supports caching of API metadata for faster (re)syncing
  • REST APIs are available to build custom interfaces

Documentation

More details are available in the doc directory, including quick start, setup documentation, security design, and media naming conventions.

Visit the GitHub organization page for all project source code repositories.