Player for your
music library.

Tape is a self-hosted audio player. It ships with no music — connect your own audio-library server and play your tracks anywhere.

Self-hosted MP3 · AAC · ALAC · FLAC · WAV · Opus No tracking No subscriptions

How it works

01

Connect your server

On first launch, enter the URL of an audio server you control. Tape talks to it — nothing is bundled or preconfigured. The address must be https:// with a valid certificate — see below.

02

Sign in (optional)

If your server offers it, sign in by email or a one-time code to unlock likes, playlists and history. Browsing works without an account.

03

Play

Stream your library with lock-screen controls, AirPods, background audio and an endless personal "Vibe" mix.

Why Tape

Your music, your server

The app hosts nothing. You point it at a library you own.

Open protocol

Any server that speaks the Tape API works. Run your own.

Private by design

No analytics, no third-party data-collecting SDKs, nothing sent to the developer.

Real audio integration

Lock screen, headphones, background playback, gapless.

Lossless ready

FLAC and high-bitrate formats stream natively.

No subscriptions

No paywalls or in-app purchases — just connect and listen.

Documentation

Connect any server

Tape is a generic client. A server is compatible if it answers a small HTTP API under /api/v1. The bare minimum to browse and play:

  • GET /api/v1/public/stats — connection check + home content (no auth).
  • GET /api/v1/library/tracks/random — the queue source.
  • GET /api/v1/library/tracks/{id}/stream — audio bytes, with HTTP Range support.
  • GET /api/v1/library/cover/{id} — artwork (or just return 404).
  • POST /api/v1/auth/login + GET /api/v1/auth/me — only if playback is gated.

Full contract — auth, browsing, search, likes, playlists, history — in the server API document.

HTTPS is required

iOS blocks plain http:// connections, so Tape cannot reach a server that answers without TLS — or with a self-signed or expired certificate. This is an operating-system rule, not a Tape setting, and it applies to every app on the device.

A certificate is free. The one thing it needs is a domain name: a certificate cannot be issued for a bare IP address, so http://203.0.113.10:8080 will not work no matter how the server is configured.

  • NAS (Synology, QNAP, similar) — the easiest path. The admin panel gives you a free hostname and a Let's Encrypt certificate in a couple of clicks; nothing to install and nothing to renew by hand.
  • Own server or VPS — point a domain at it and let Caddy or certbot obtain and renew the certificate automatically. A domain costs a few dollars a year.
  • Home network — a server on your local network (192.168.x.x, 10.x.x.x) works over plain http:// without a certificate, because iOS allows local connections. Useful for trying things out; it will not work once you leave the house.