[Help]: how to provide "side-by-side" chapter files? #4254

Closed
opened 2026-02-07 00:38:24 +03:00 by OVERLORD · 1 comment
Owner

Originally created by @systemcrash on GitHub (Oct 6, 2022).

Please describe your bug

What are the format and naming prerequisites for external metadata like chapters? Maybe this is currently unsupported. But I don't see either the side-by-side naming convention documented. 🤷

The server currently handles subs, and other tracks in a side-by-side manner. Chapters aren't tracks, but metadata(?).

e.g.

a.mkv
a.en.srt
a.ru.srt
a.en.dts
a.ru.ac3
...

and other formats. These appear to be ready to consume by e.g. ffmpeg for weaving into a single container.

mkvextract provides:

mkvextract <source-filename> <mode1> [options] <extraction-spec1> [<mode2> [options] <extraction-spec2>…]

 Modes:
tracks [options] [TID1:out1 [TID2:out2...]]
tags [options] out.xml
attachments [options] [AID1:out1 [AID2:out2...]]
chapters [options] out.xml
cuesheet [options] out.cue
timestamps_v2 [TID1:out1 [TID2:out2...]]
cues [options] [TID1:out1 [TID2:out2...]]

[...]

 Chapter extraction:
The fourth mode extracts the chapters, converts them to XML and writes them to an output file.
  -s, --simple                Exports the chapter information in the simple format used in OGM tools (CHAPTER01=... CHAPTER01NAME=...).
  --simple-language language  Uses the chapter names of the specified language for extraction instead of the first chapter name found.

 Example:
mkvextract "a movie.mkv" chapters movie_chapters.xml

REFERENCE https://www.matroska.org/technical/chapters.html

I took a quick peek in https://github.com/jellyfin/jellyfin/blob/master/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs ( might not be the right place ) and saw no mention of Chapters or ChapterAtom.

ffprobe can provide in other formats, I suppose. e.g.

ffprobe -i fname -print_format json -show_chapters -loglevel error

Jellyfin Version

10.8.0

if other:

No response

Environment

- OS:
- Virtualization:docker
- Clients:web, ios, androidTV
- Browser:ff
- FFmpeg Version:
- Playback Method:
- Hardware Acceleration:
- Plugins:
- Reverse Proxy:
- Base URL:
- Networking:
- Storage:

Jellyfin logs

No response

FFmpeg logs

No response

Please attach any browser or client logs here

No response

Please attach any screenshots here

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct
Originally created by @systemcrash on GitHub (Oct 6, 2022). ### Please describe your bug What are the format and naming prerequisites for external metadata like chapters? Maybe this is currently unsupported. But I don't see either the side-by-side naming convention documented. 🤷 The server currently handles subs, and other tracks in a side-by-side manner. Chapters aren't tracks, but metadata(?). e.g. ``` a.mkv a.en.srt a.ru.srt a.en.dts a.ru.ac3 ... ``` and other formats. These appear to be ready to consume by e.g. ffmpeg for weaving into a single container. mkvextract provides: ``` mkvextract <source-filename> <mode1> [options] <extraction-spec1> [<mode2> [options] <extraction-spec2>…] Modes: tracks [options] [TID1:out1 [TID2:out2...]] tags [options] out.xml attachments [options] [AID1:out1 [AID2:out2...]] chapters [options] out.xml cuesheet [options] out.cue timestamps_v2 [TID1:out1 [TID2:out2...]] cues [options] [TID1:out1 [TID2:out2...]] [...] Chapter extraction: The fourth mode extracts the chapters, converts them to XML and writes them to an output file. -s, --simple Exports the chapter information in the simple format used in OGM tools (CHAPTER01=... CHAPTER01NAME=...). --simple-language language Uses the chapter names of the specified language for extraction instead of the first chapter name found. Example: mkvextract "a movie.mkv" chapters movie_chapters.xml ``` REFERENCE https://www.matroska.org/technical/chapters.html I took a quick peek in https://github.com/jellyfin/jellyfin/blob/master/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs ( might not be the right place ) and saw no mention of Chapters or ChapterAtom. ffprobe can provide in other formats, I suppose. e.g. ``` ffprobe -i fname -print_format json -show_chapters -loglevel error ``` ### Jellyfin Version 10.8.0 ### if other: _No response_ ### Environment ```markdown - OS: - Virtualization:docker - Clients:web, ios, androidTV - Browser:ff - FFmpeg Version: - Playback Method: - Hardware Acceleration: - Plugins: - Reverse Proxy: - Base URL: - Networking: - Storage: ``` ### Jellyfin logs _No response_ ### FFmpeg logs _No response_ ### Please attach any browser or client logs here _No response_ ### Please attach any screenshots here _No response_ ### Code of Conduct - [X] I agree to follow this project's Code of Conduct
OVERLORD added the bug label 2026-02-07 00:38:24 +03:00
Author
Owner

@cvium commented on GitHub (Oct 6, 2022):

Unsupported. Only external audio and subtitles are supported. This would be a feature request which belongs at https://features.jellyfin.org

@cvium commented on GitHub (Oct 6, 2022): Unsupported. Only external audio and subtitles are supported. This would be a feature request which belongs at https://features.jellyfin.org
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#4254