How karaagexc/akb48-archive works
AKB48 Archive is a self-hosted media library whose main workflow is browsing the hub, finding a title or track, and playing it in the browser. The Express server supplies library metadata, media and supporting assets; the SPA coordinates views and playback. Separate branches cover music and podcast metadata, concert-song recognition, wiki content, TV access, and the Windows launcher. The README documents capabilities beyond the sampled excerpts, so those subsystem links reflect documentation rather than inspected call sites.
Main entry points: spa.js SPA controller · server.js Library API · wrapper.js TV server picker · hub.js Hub and browse
Components 23
Web experience
- SPA controller
app/web-app/public/js/spa.js - Hub and browse
app/web-app/public/js/hub.js - Music view
app/web-app/public/js/listen.js - Podcast view
app/web-app/public/js/podcast.js - Video player
app/web-app/public/js/video-player.js - TV navigation
tv/tv.js
Archive backend
- Express server
app/web-app/server.js - Library API
app/web-app/server.js - Watch progress
app/web-app/server.js - Wiki proxy
app/web-app/server.js - Media library
- Discord presence
app/web-app/server.js
Media features
- Music metadata
app/web-app/lib/music-metadata.js - Podcast metadata
app/web-app/lib/podcast-metadata.js - Concert recognition
app/web-app/lib/music-metadata.js
Device access
- Android TV app
tv-android/app/src/main/java/com/akb48archive/tv/MainActivity.java - TV server picker
tv-app/wrapper.js - Windows tray launcher
app/windows-tray/AKB48ArchiveTray.cs - Server wrapper
app/windows-tray/server.js
Other components
- Viewer
- AKB48 Wiki
- Browser
- Discord
Connections 24
- Viewer → Hub and browse: browses
- Hub and browse → SPA controller: requests views
- SPA controller → Library API: fetches library
- Library API → Media library: scans media
- Library API → Music metadata: enriches items
- Library API → Concert recognition: attaches song data
- SPA controller → Video player: controls playback
- SPA controller → Music view: controls music
- SPA controller → Podcast view: opens podcasts
- Music view → Music metadata: uses metadata
- Podcast view → Podcast metadata: uses metadata
- SPA controller → Watch progress: stores progress
- SPA controller → Wiki proxy: requests articles
- Wiki proxy → AKB48 Wiki: fetches wiki data
- Browser → SPA controller: loads application
- Browser → TV server picker: opens picker
- TV server picker → Express server: probes health
- TV server picker → TV navigation: opens TV view
- Android TV app → Express server: probes and loads
- TV navigation → SPA controller: navigates interface
- Windows tray launcher → Server wrapper: starts server
- Server wrapper → Express server: loads entry point
- Express server → Discord presence: updates status
- Discord presence → Discord: sends presence