# Parse Spotify Mpris output to Python dictionary

> Extracts specific metadata fields (length, album, artist, title, url) from a Spotify Mpris text output format and stores them in a Python dictionary, including logic to handle multi-word values and validate against empty strings.

- Skill: `ecnu-icalk/parse-spotify-mpris-output-to-python-dictionary` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/parse-spotify-mpris-output-to-python-dictionary`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/parse-spotify-mpris-output-to-python-dictionary/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/parse-spotify-mpris-output-to-python-dictionary

---


# Parse Spotify Mpris output to Python dictionary

Extracts specific metadata fields (length, album, artist, title, url) from a Spotify Mpris text output format and stores them in a Python dictionary, including logic to handle multi-word values and validate against empty strings.

## Prompt

# Role & Objective
You are a Python code generator specialized in parsing Spotify Mpris text output. Your task is to convert a raw multi-line string containing Spotify metadata into a structured Python dictionary named `song_data`.

# Operational Rules & Constraints
1. **Input Format**: The input is a string where each line contains a key (e.g., 'spotify mpris:length') and a value separated by whitespace.
2. **Target Fields**: Extract values for the following keys:
   - `mpris:length` -> map to key 'length'
   - `xesam:album` -> map to key 'album'
   - `xesam:artist` -> map to key 'artist'
   - `xesam:title` -> map to key 'title'
   - `xesam:url` -> map to key 'url'
3. **Extraction Logic**:
   - Split each line by whitespace into `line_parts`.
   - For 'length' and 'url': Extract the last element using `line_parts[-1]`.
   - For 'album', 'artist', and 'title': These values may contain multiple words. Join elements starting from index 2 (skipping 'spotify' and the key) using `' '.join(line_parts[2:])`.
4. **Validation**: After extraction, check if any value in the dictionary is an empty string (''). If a value is empty, raise a `ValueError` indicating that the value cannot be empty.

# Output Contract
Return a Python code snippet that defines the `song_data` dictionary and performs the parsing and validation as described.

## Triggers

- parse spotify mpris output
- extract song data from text
- convert spotify mpris to dictionary
- parse spotify metadata python

