get_unplayed_tracks
Retrieve a list of tracks that have never been played from the rekordbox DJ database, customizable with a limit. Ideal for DJs managing their music library.
Instructions
Get tracks that have never been played.
Args: limit: Maximum number of tracks to return
Returns: List of unplayed tracks
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Implementation Reference
- rekordbox_mcp/server.py:187-202 (handler)MCP tool handler decorated with @mcp.tool(). Delegates to database.get_unplayed_tracks and serializes tracks to dicts using model_dump().@mcp.tool() async def get_unplayed_tracks(limit: int = 50) -> List[Dict[str, Any]]: """ Get tracks that have never been played. Args: limit: Maximum number of tracks to return Returns: List of unplayed tracks """ if not db: raise RuntimeError("Database not initialized.") tracks = await db.get_unplayed_tracks(limit) return [track.model_dump() for track in tracks]
- rekordbox_mcp/database.py:334-344 (helper)Database class method implementing the core logic: loads content, filters active tracks with DJPlayCount == 0, converts to Track models, limits results.async def get_unplayed_tracks(self, limit: int = 50) -> List[Track]: """Get tracks that have never been played.""" if not self.db: raise RuntimeError("Database not connected") all_content = list(self.db.get_content()) active_content = [c for c in all_content if getattr(c, 'rb_local_deleted', 0) == 0] # Filter tracks with 0 play count unplayed = [content for content in active_content if (getattr(content, 'DJPlayCount', 0) or 0) == 0] return [self._content_to_track(content) for content in unplayed[:limit]]