https://github.com/verkaro/xspf-prose
This document specifies a method for embedding multi-paragraph, Markdown-formatted prose within an XSPF (XML Shareable Playlist Format) file.
https://github.com/verkaro/xspf-prose
markdown playlist prose xspf
Last synced: 10 months ago
JSON representation
This document specifies a method for embedding multi-paragraph, Markdown-formatted prose within an XSPF (XML Shareable Playlist Format) file.
- Host: GitHub
- URL: https://github.com/verkaro/xspf-prose
- Owner: verkaro
- License: mit
- Created: 2025-07-06T18:21:39.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-06T18:55:16.000Z (11 months ago)
- Last Synced: 2025-07-26T23:02:23.751Z (11 months ago)
- Topics: markdown, playlist, prose, xspf
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# XSPF Prose Extension Specification v1.1
**Namespace URI:** `https://github.com/verkaro/xspf-prose/tree/v1.1`
## 1. Introduction
This document specifies a method for embedding multi-paragraph, Markdown-formatted prose within an XSPF (XML Shareable Playlist Format) file. It uses the standard XSPF `` element to ensure that documents using this specification remain fully compliant with the base XSPF v1 standard. Playlists using this extension will be functional in any standard XSPF player, which will safely ignore the extension.
## 2. Conformance
A conforming document MUST use the `` element with its `application` attribute set to the exact Namespace URI specified above.
## 3. Specification
The Prose Extension is defined by the following structure within an XSPF `` element.
### 3.1. The Extension Element
* **Element:** ``
* **`application` Attribute:** MUST be `https://github.com/verkaro/xspf-prose/tree/v1.1`.
### 3.2. The Content Element
* The `` element MUST contain one child element in the same namespace.
* **Element Name:** `` (where `prose` is the prefix mapped to the Namespace URI).
* **Content:** The content of this element MUST be wrapped in a `` section to prevent parsing errors. The character data within this section should be interpreted as Markdown, preferably compliant with the [CommonMark](https://commonmark.org/) specification.
## 4. Complete Example
Here is a complete, valid XSPF playlist demonstrating the use of the Prose Extension.
```xml
Playlist with Embedded Prose
https://archive.org/download/some-track/track.mp3
A Track with a Story
```
## 5. Implementation Guidance for Parsers
1. When parsing an XSPF ``, check for an `` element where the `application` attribute matches the Namespace URI (`https://github.com/verkaro/xspf-prose/tree/v1.1`).
2. If found, retrieve the string data from the `CDATA` section of its `` child.
3. Process this string through a standard Markdown renderer before displaying it in the application's user interface.
4. If the extension is not present, no prose is associated with the track. The UI view for prose should not be displayed.