DirectoryListingAudioPlayer
An howler.js based audio player that dynamically creates playlist from an Nginx directory listing json file.
Install / Use
/learn @lord-carlos/DirectoryListingAudioPlayerREADME
directoryListingAudioPlayer
An howler.js based audio player that dynamically creates playlist from an Nginx directory listing json file.
Based on howler.js
99% based on the example code from howler.js
But I made it parse the json from an Nginx Directory Listing.
Setup
Create a directory listing with an alias where you audio files are located.
location /myAudioFiles/json {
alias /var/www/html/audio;
autoindex_exact_size off;
autoindex on;
autoindex_format json;
charset utf-8;
}
Create another location with an URL where you want the player to be reachable, and an alias to where the files are located.
git clone https://github.com/lord-carlos/directoryListingAudioPlayer.git
Edit the player.js and change jsonUrl = '' to where the files are located. For example var jsonUrl = "https://example.com/myAudioFiles/json";
Optional change reverse to false. If true the playlist will be reversed from the directory listing.
Motivation
I wanted something super simple to share audio files. Better then normal directory listing where the browser creates a minimal player, but not as big as Airsonic, Funkwhale or Jellyfin.
missing
- Direct linking a specific song.
- clean code 😶
Known bugs
- Seeking back and forth on large files sometimes lead to weird behavior.
Screenshots
Player

Playlist

Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
