Skip to main content
Glama
06-players.md3.4 kB
# Player API ## Overview Manage audio players/clients that connect to Navidrome for music playback. ## Base URL: `/api/player` ### GET /api/player List all players registered for the user. **Response (200 OK):** ```json [ { "id": "string", "name": "string", "type": "string", // Player type (e.g., "Subsonic", "Web") "userName": "string", // User who owns the player "userId": "string", "client": "string", // Client application name "ipAddress": "string", // Last known IP address "lastSeen": "ISO-8601", // Last activity timestamp "transcoding": boolean, // Whether transcoding is enabled "maxBitRate": number, // Max bitrate setting "scrobbleEnabled": boolean, // Last.fm scrobbling enabled "reportRealPath": boolean, // Report real file paths vs stream URLs "createdAt": "ISO-8601", "updatedAt": "ISO-8601" } ] ``` ### GET /api/player/{id} Get a specific player by ID. **Response (200 OK):** Single player object with same structure as list **Error Responses:** - 404 Not Found: Player not found or not owned by user ### POST /api/player Create/register a new player. **Request Body:** ```json { "name": "string (required)", "type": "string", "client": "string", "transcoding": boolean, "maxBitRate": number, "scrobbleEnabled": boolean, "reportRealPath": boolean } ``` **Response (201 Created):** Created player object ### PUT /api/player/{id} Update player settings. **Request Body:** ```json { "name": "string", "transcoding": boolean, "maxBitRate": number, "scrobbleEnabled": boolean, "reportRealPath": boolean } ``` **Response (200 OK):** Updated player object ### DELETE /api/player/{id} Remove a player registration. **Response (200 OK):** ```json { "id": "string" } ``` ## Player Types | Type | Description | Auto-Created | |------|-------------|--------------| | "Web" | Web-based players | Yes | | "Subsonic" | Subsonic API clients | Yes | | "DLNA" | DLNA/UPnP players | No | | "MPD" | MPD clients | No | ## Player Settings ### Transcoding - **Purpose**: Convert audio format/quality for streaming - **Options**: boolean (enabled/disabled) - **Affects**: Stream endpoint behavior ### Max Bit Rate - **Purpose**: Quality limit for streaming - **Values**: Number in kbps (e.g., 128, 320) - **Default**: Unlimited (0) ### Scrobble Enabled - **Purpose**: Enable Last.fm/ListenBrainz integration - **Default**: false - **Requires**: Server-level scrobble configuration ### Report Real Path - **Purpose**: Return file paths instead of stream URLs - **Use Case**: Local network players with file access - **Default**: false ## Auto-Registration Players are often auto-registered on first API access: 1. **Subsonic API**: Creates player on authentication 2. **Web Interface**: Creates player on first load 3. **Manual Registration**: Via POST /api/player ## Player Context Many endpoints accept a player context via headers: - `X-ND-Player-ID`: Player ID for request context - `X-ND-Client-Name`: Client name for auto-registration ## Activity Tracking - `lastSeen` updated on each API request - `ipAddress` updated on IP changes - Used for player management and cleanup ## Cleanup Inactive players may be automatically removed based on server configuration: - Default: Keep players active within last 30 days - Configurable via server settings

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Blakeem/Navidrome-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server