Subsonic Source
podkit supports syncing from Subsonic-compatible servers including Navidrome, Airsonic, Gonic, and the original Subsonic server.
Configuration
[music.navidrome]type = "subsonic"url = "https://your-server.example.com"username = "your-username"password = "your-password"path = "/path/to/download/cache"Required Fields
| Key | Description |
|---|---|
type | Must be "subsonic" |
url | The base URL of your Subsonic-compatible server |
username | Your Subsonic username |
path | A local directory where podkit caches downloaded audio files |
The path directory is used as a local cache for audio files streamed from the server during sync. It does not need to be permanent storage, but keeping it between syncs avoids re-downloading unchanged files.
Password Options
The password can be provided in several ways (checked in this order):
- Config file - Add
password = "..."to the collection config - Collection-specific env var - Set
PODKIT_MUSIC_{NAME}_PASSWORDwhere{NAME}is the collection name in uppercase (hyphens become underscores, e.g.my-serverbecomesPODKIT_MUSIC_MY_SERVER_PASSWORD) - Fallback env var - Set
SUBSONIC_PASSWORDfor any Subsonic collection
Example with environment variable:
# For a collection named "navidrome"export PODKIT_MUSIC_NAVIDROME_PASSWORD="your-password"podkit sync -c navidromeSecurity note: Storing passwords in config files is convenient but less secure than environment variables.
How It Works
- Connect to the Subsonic server using the API
- Fetch the complete catalog (paginating through albums)
- Extract track metadata from the API response
- During sync, stream audio directly from the server
- Transcode as needed and copy to iPod
Supported Servers
| Server | Status | Notes |
|---|---|---|
| Navidrome | Tested | Full support |
| Airsonic | Untested | Should work (same API) |
| Gonic | Untested | Should work (same API) |
| Subsonic | Untested | Should work (original API) |
Limitations
- No playlist sync (yet) - only tracks are synced
- Fresh fetch each sync - no local catalog caching
- Single server per collection - create multiple collections for multiple servers
Example with Multiple Servers
[music.home-server]type = "subsonic"url = "https://home.example.com"username = "user"path = "/tmp/subsonic-cache"
[music.work-server]type = "subsonic"url = "https://work.example.com"username = "workuser"path = "/tmp/work-cache"See Also
- Directory Source - Local filesystem collections
- Configuration - Full configuration reference
- Audio Transcoding - Quality settings for transcoding