Airdrome fork for music.mairup.space — native sharing + synced lyrics. Upstream: github.com/JPGuillemin/Airdrome (AGPL-3.0)
- HTML 57.1%
- Vue 24.7%
- TypeScript 12.7%
- SCSS 3.7%
- JavaScript 1.5%
- Other 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
- getCodec(): drop the audio/aac branch; Navidrome serves format=aac as raw ADTS which browsers cannot decode (AAC is decodable only in an MP4 container), and Navidrome itself discards AAC profiles in getTranscodeDecision. Opus for Chrome/Android, mp3 for Safari. - boot no longer overwrites an explicit opus/mp3 choice written by the quality UI. - onerror: retry the same track once from byte 0 (cache-busting param), then stop and release the lock; no unbounded next(true) cascade. - onended: clear a stuck inTransition/transitionCount before advancing, so one stalled load cannot kill every later track end. - audio.ts playElement(): race el.play() against a timeout so a stalled chunked stream cannot hang loadTrack() and leave the transition lock set. |
||
| .archive | ||
| .github/workflows | ||
| .gradle | ||
| build/reports/problems | ||
| docker | ||
| docker.template | ||
| gradle/wrapper | ||
| public | ||
| screenshots | ||
| src | ||
| .dockerignore | ||
| .editorconfig | ||
| .eslintignore | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| build-public-dockers.sh | ||
| build.gradle | ||
| build.sh | ||
| docker-compose.yml | ||
| Dockerfile | ||
| eslint.config.js | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| index.html | ||
| LICENSE | ||
| manifest-checksum.txt | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| settings.gradle | ||
| stats.html | ||
| store_icon.png | ||
| tsconfig.json | ||
| txt | ||
| VERSION | ||
| vite.config.mjs | ||
| yarn.lock | ||
Airdrome Music Player
Airdrome is a powerful modern application for Android and Desktop, supporting navidrome, airsonic-advanced, NextCloud Music and other subsonic compatible music servers.
Test the latest version here : AIRDROME NIGHTLY
Features
- "Cockpit" library home page with playback suggestions based on recent listenings
- Library browsing for albums, artist, genres, playlists, favourites
- "Radio like" dynamic playlists for anything : Genre, Album, Artist, Recent albums, Favourites, Random
- 3 "CD quality" OPUS transcoding modes
- Native Gapless playback
- 2 modes Replay Gain support
- Full mediaSession integration
- Persistent queue, repeat, shuffle
- 4 color themes
- Responsive UI for Android, and WEB browser (standard page or PWA)
- Persistant cache and download for offline listening
- View, create, and edit playlists
- Full text search with sorted results by artists, albums, tracks
- Favourites tagging
Screenshots

Run from Docker Hub
$ docker run -d \
--name=airdrome \
--restart on-failure \
--network=bridge \
-p 8080:80 \
h7p3ri0n/airdrome:latest
Build your own Docker image
$ yarn install
$ yarn build
Bundle can be found in the dist folder.
Build docker image:
$ docker build -f docker/Dockerfile -t local/airdrome .
$ docker run -d \
--name=airdrome \
--restart on-failure \
--network=bridge \
-p 8080:80 \
local/airdrome:latest
OpenSubsonic endpoints
- getAlbumList2
- getArtistInfo2
- getAlbumInfo2
- getStarred2
- search3
- getSongsByGenre
- getRandomSongs
- getPlayQueue
- savePlayQueue
- getScanStatus
- startScan
- getOpenSubsonicExtensions
Contributors
- chunjiw — Capacitor-based Android build
License
Licensed under the AGPLv3 license.