Share music, podcasts, and DJ mixes
Audio collections showcase music, podcasts, DJ mixes, and other sound content with an embedded player.
Creating an Audio Entry
Using the CLI
astrolock content mixes "Summer Vibes Mix"
This creates a content file and tells you where to upload the audio.
Manual Creation
Create a file at content/mixes/summer-vibes-mix.md:
---
title: "Summer Vibes Mix"
date: 2025-01-15T00:00:00Z
author: "DJ Name"
description: "A warm summer house mix"
genres:
- House
- Deep House
---
Track notes and description here...
Then upload the audio file to: public/audio/content/mixes/summer-vibes-mix.mp3
Tip
Automatic file matching: When you don’t specify a media object,
Astrolock automatically looks for an audio file matching the markdown filename
in public/audio/content/{collection}/.
File Naming Convention
Astrolock uses “magic” file inference to simplify your workflow:
| Markdown File | Expected Audio File |
|---|---|
content/mixes/summer-vibes.md | public/audio/content/mixes/summer-vibes.mp3 |
content/podcasts/episode-1.md | public/audio/content/podcasts/episode-1.mp3 |
The filename (without extension) must match between the markdown and audio file.
Info
The default extension is .mp3. Configure different extensions per collection
in astrolock.yaml.
Frontmatter Reference
Minimal Example
Only the title is required - everything else is inferred:
---
title: "Summer Vibes Mix"
date: 2025-01-15T00:00:00Z
---
Full Example
All available options:
---
title: "Deep House Sessions Vol. 1"
date: 2025-01-15T00:00:00Z
author: "DJ Smooth"
description: "Two hours of deep, melodic house music"
image: "/images/content/mixes/deep-sessions-1.jpg"
genres:
- Deep House
- Melodic House
categories:
- Monthly Mix
tags:
- Featured
duration: "2:00:00"
bpm: 122
key: "Am"
media:
name: "deep-house-sessions-1"
author: "DJ Smooth"
collection: "mixes"
contentType: "audio"
contentExtension: "mp3"
tracklist:
- time: "00:00"
artist: "Artist One"
title: "Opening Track"
- time: "06:30"
artist: "Artist Two"
title: "Second Track"
draft: false
---
Welcome to the first volume of Deep House Sessions...
Required Fields
| Field | Description |
|---|---|
title | The audio title |
Common Fields
| Field | Description | Example |
|---|---|---|
date | Release date | 2025-01-15 |
author | Creator name | "DJ Name" |
description | Summary text | "A summer mix..." |
image | Cover art path | "/images/content/mixes/cover.jpg" |
genres | Music styles (list) | ["House", "Techno"] |
duration | Length | "1:23:45" |
Audio-Specific Fields
| Field | Description | Example |
|---|---|---|
bpm | Beats per minute | 122 |
key | Musical key | "Am" |
tracklist | Track list (see below) | Array of tracks |
Media Object
Override automatic file detection:
media:
name: "file-name" # Filename without extension
author: "Artist Name" # Audio creator
collection: "mixes" # Collection name
contentType: "audio" # Always "audio"
contentExtension: "mp3" # File extension (.mp3, .wav, etc.)
Info
The media object is optional. If omitted, Astrolock infers the file location
from the markdown filename.
Tracklists
For mixes and compilations, document the tracks:
tracklist:
- time: "00:00"
artist: "Daft Punk"
title: "One More Time"
- time: "05:32"
artist: "Basement Jaxx"
title: "Where's Your Head At"
- time: "10:15"
artist: "Fatboy Slim"
title: "Right Here Right Now"
Warning
Coming Soon: Tracklist rendering with clickable timestamps is planned but not yet implemented. The data is stored in frontmatter for future use.
Cover Art
Add a cover image:
---
image: "/images/content/mixes/summer-vibes.jpg"
---
Put the image at public/images/content/mixes/summer-vibes.jpg.
Tip
Square images (1:1 ratio) work best for audio cover art.
Index Style
Control how your audio collection index page displays using indexStyle:
| Style | Description |
|---|---|
posts | Card grid with pagination and sidebar (default) |
content | Renders -index.md body content with optional TOC |
Configure in .astrolock/astrolock.yaml:
collections:
mixes:
displayName: "DJ Mixes"
contentType: "audio"
features:
indexStyle: "posts"
archive: true
Rekordbox Import
If you use Rekordbox for DJ mixes, you can automatically import your tracklists:
astrolock import rekordbox path/to/export.xml
See Rekordbox Import for setup details.
Next Steps
- Learn about Video Collections for video content
- Explore Image Collections for galleries
- See Collection Configuration for all options