Skip to content

p1nox/taper-player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

39 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Taper Player β€” No Tape Left Behind

taper-player 🎸

A fan-made, open-source desktop player for the Aadam Jacobs Collection on the Internet Archive. Tauri 2 + React 19 + TypeScript with a multi-theme UI and an HTML5 Audio engine.

This is a fan tribute, not an official project. It streams public recordings from archive.org and is unaffiliated with the AJC project. It is free and non-commercial β€” no ads, no tracking, no money is made from it, and it hosts or redistributes no audio of its own; everything is played directly from archive.org's public endpoints.

At a glance

  • Single integrated window β€” top bar with search and back/forward, left Your-Library sidebar (Search / Likes / Recent / Artists / Years / Venues), main content panel, always-visible bottom player bar.
  • Custom HTML5 AudioEngine β€” queue, shuffle, repeat, seek, volume. No Webamp, no native audio pipeline.
  • Polite Rust proxy to archive.org β€” 4 concurrent, 200 ms min gap, retry/backoff on 429/503/5xx, project-identifying User-Agent.
  • Live collection index β€” loads the Aadam Jacobs Collection through archive.org's advanced search API, then caches the normalized show index in localStorage for faster future launches. In-memory MiniSearch powers fuzzy global search.
  • Likes and listening history β€” liked shows/tracks and recent plays are stored locally in the app.
  • MP3 VBR default, FLAC toggle per show, selected on the show page.

Downloads and unsigned installer warning

Downloads are attached to the GitHub Releases page for macOS, Windows, and Linux.

The current builds are unsigned:

  • macOS: Gatekeeper may block the first launch. Right-click Taper Player.app and choose Open.
  • Windows: SmartScreen may warn. Choose More info β†’ Run anyway if you trust this build.
  • Linux: make the AppImage executable if needed: chmod +x Taper*.AppImage.

This is expected for the first public release. The app is open source, free, non-commercial, and does not include ads or tracking.

Screenshots

Playing a show in Taper Player

Four built-in themes β€” dark (default), light, vintage-1 (Winamp-style), and vintage-2 (Windows Media Player-style):

Dark theme Light theme
dark light
Vintage 1 (Winamp-style) theme Vintage 2 (Windows Media Player-style) theme
vintage-1 (Winamp) vintage-2 (Windows Media Player)

Prerequisites

  • Node.js 18+ and Yarn classic (1.x) β€” yarn.lock is committed.
  • Rust stable (1.77+) with cargo β€” Tauri's build driver. Install via rustup.
  • Platform build tools:
    • macOS: Xcode Command Line Tools (xcode-select --install).
    • Linux: libwebkit2gtk-4.1-dev, libssl-dev, libgtk-3-dev, librsvg2-dev, libayatana-appindicator3-dev.
    • Windows: MS Visual Studio C++ build tools + WebView2.

See Tauri's prerequisites guide for the authoritative list.

Run it

yarn install
yarn build
yarn tauri dev

# For Desktop development, run:
yarn tauri dev

# For Android development, run:
yarn tauri android init
yarn tauri android dev

# For iOS development, run:
yarn tauri ios init
yarn tauri ios dev

yarn build (= tsc && vite build) is a fast frontend-only smoke test.

See docs/DEVELOPMENT.md for prerequisites, scripts, and debugging tips.

Build and start App

yarn tauri dev launches the raw debug binary, which isn't wrapped in a macOS .app bundle. For testing the real binary app run:

yarn tauri build
open "src-tauri/target/release/bundle/macos/Taper Player.app"

Documentation

Doc What's in it
docs/SPEC.md Product spec and roadmap notes.
docs/ARCHITECTURE.md Directory layout, provider composition, data flow diagrams.
docs/DATA.md IA proxy, normalizers, index loader, cache, MiniSearch.
docs/PLAYER.md AudioEngine state machine, PlayerBar, play-show flow.
docs/UI.md Design tokens, layout grid, view-by-view tour.
docs/DEVELOPMENT.md Dev setup, scripts, Tauri config, linting plans.
docs/RELEASES.md CI release workflow, tagging flow, signing caveats.

Credits

The collection and the work behind it:

  • Aadam Jacobs β€” for recording 10,000+ concerts and donating them to the Internet Archive.
  • Brian Emerick and the volunteer digitization and cataloging team.
  • The Internet Archive β€” for hosting the collection.
  • aadamjacobscollection.org β€” the official project site.

Taper Player is independent of and unaffiliated with any of the above.

Backstory

I was having way too much fun listening to the collection in a browser tab, and figured it deserved a dedicated desktop app instead of hunting for the right tab every time. So I vibe-coded this with Claude Code β€” and now it just sits there playing the collection while I do anything else. 🎢

License

MIT. See LICENSE.

See DISCLAIMER.md and NOTICE for the non-affiliation and non-commercial statement.

Releases

Packages

Contributors

Languages