[Implemented] DVD/Bluray-like Chapters support

Update:

The first step is done.
Chapters can be used in the new iOS client.

Chapters are supported by the server and read from files. If the Freebase agent is used for the library, named chapters can even be imported online from ChapterDb for new movies or by force refreshing (scheduled tasks can do this automatically, mine did)

You can check if a movie has already chapters by looking at its mediainfo XML
you must insert an additional parameter into the URL of the mediainfo XML page
&includeChapters=1

so lets say you have the URL
https://172-29-0-1.7dd55f67e7a6c66b77d77f7e7.plex.direct:32400/library/metadata/156941?checkFiles=1&includeExtras=1&X-Plex-Token=myToken
you insert the parameter
https://172-29-0-1.7dd55f67e7a6c66b77d77f7e7.plex.direct:32400/library/metadata/156941?checkFiles=1&includeChapters=1&includeExtras=1&X-Plex-Token=myToken

then the XML will contain chapter markers from all associated media (even from local extras)

<MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="24" librarySectionTitle="MusikVideoDoku" librarySectionUUID="d512ad70-b076-4913-ae49-ef7b1c0b895a" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1438960324"> <Video ratingKey="156940" key="/library/metadata/156940" guid="com.plexapp.agents.themoviedb://20136?lang=de" type="movie" title="The Cure: Trilogy" titleSort="Cure: Trilogy" summary="Die Gothic-Rocker um Sänger Robert Smith spielten im November 2002 an zwei Abenden im Berliner Tempodrom ihre kompletten Longplayer Pornography (von 1982), Disintegration (1989) und Bloodflowers (2000), die thematisch miteinander verknüpft sind und ein düsteres Gesamtwerk ergeben. Die Aufzeichnung dieses einmaligen Konzertspektakels, das von den beiden Zugaben "If Only Tonight We Could Sleep" und "The Kiss" abgerundet wird, brilliert mit einer exzellenten Bildregie (zwölf Kameras kamen zum Einsatz) und einem warmen, lebendigen Soundmix, am herausragendsten ist allerdings die fünfköpfige Band." year="2003" thumb="/library/metadata/156940/thumb/1411761316" art="/library/metadata/156940/art/1411761316" duration="2749021" originallyAvailableAt="2003-06-03" addedAt="1411758971" updatedAt="1411761316" chapterSource="media"> <Media videoResolution="576" id="142362" duration="2749021" bitrate="2868" width="716" height="576" aspectRatio="1.78" audioChannels="2" audioCodec="aac" videoCodec="h264" container="mkv" videoFrameRate="PAL"> <Part accessible="1" exists="1" id="143172" key="/library/parts/143172/file.mkv" duration="2749021" file="F:\Musik\Multimedia\The Cure\Trilogy\Pornography.mkv" size="985359049" container="mkv" indexes="sd"> <Stream id="190116" streamType="1" codec="h264" index="0" bitrate="2868" anamorphic="1" bitDepth="8" cabac="1" chromaSubsampling="4:2:0" codecID="V_MPEG4/ISO/AVC" colorSpace="yuv" frameRateMode="vfr" hasScalingMatrix="0" height="576" level="41" pixelAspectRatio="209:147" profile="high" refFrames="16" scanType="progressive" width="716"/> <Stream id="190117" streamType="2" codec="aac" index="1" channels="2" language="English" languageCode="eng" audioChannelLayout="stereo" codecID="A_AAC" duration="2749021" profile="lc" samplingRate="48000" title="Stereo"/> <Stream id="190118" streamType="2" selected="1" codec="flac" index="2" channels="2" language="English" languageCode="eng" audioChannelLayout="stereo" bitDepth="16" bitrateMode="vbr" codecID="A_FLAC" duration="2749021" samplingRate="48000" title="Stereo"/> </Part> </Media> <Genre id="3151" tag="Musik" count="7"/> <Director id="32259" tag="Nick Wickham"/> <Chapter id="32064" tag="100 Seconds (intro)" index="1" startTimeOffset="0" endTimeOffset="106800"/> <Chapter id="32027" tag="One Hundred Years" index="2" startTimeOffset="106800" endTimeOffset="526360"/> <Chapter id="32065" tag="A Short Term Effect" index="3" startTimeOffset="526360" endTimeOffset="786120"/> <Chapter id="32066" tag="The Hanging Garden" index="4" startTimeOffset="786120" endTimeOffset="1064360"/> <Chapter id="32067" tag="Siamese Twins" index="5" startTimeOffset="1064360" endTimeOffset="1397760"/> <Chapter id="32019" tag="The Figurehead" index="6" startTimeOffset="1397760" endTimeOffset="1806640"/> <Chapter id="32020" tag="A Strange Day" index="7" startTimeOffset="1806640" endTimeOffset="2099640"/> <Chapter id="32068" tag="Cold" index="8" startTimeOffset="2099640" endTimeOffset="2359960"/> <Chapter id="32069" tag="Pornography" index="9" startTimeOffset="2359960" endTimeOffset="2749080"/> <Extras size="8"> <Video ratingKey="156959" key="/library/metadata/156959" guid="file:///F:/Musik/Multimedia/The%20Cure/Trilogy/Interview%201-behindthescenes.mkv" type="clip" title="Interview 1" summary="" index="2" thumb="/library/metadata/156959/thumb/1411761312" duration="2214600" addedAt="1411761311" updatedAt="1411761312" chapterSource="media" extraType="5"> <Media videoResolution="576" id="142381" duration="2214600" bitrate="1758" width="718" height="576" aspectRatio="1.78" audioChannels="2" audioCodec="ac3" videoCodec="h264" container="mkv" videoFrameRate="PAL" optimizedForStreaming="0"> <Part id="143191" key="/library/parts/143191/file.mkv" duration="2214600" file="F:\Musik\Multimedia\The Cure\Trilogy\Interview 1-behindthescenes.mkv" size="486734156" container="mkv" optimizedForStreaming="0"> <Stream id="112616" streamType="1" codec="h264" index="0" bitrate="1531" anamorphic="1" bitDepth="8" cabac="1" chromaSubsampling="4:2:0" codecID="V_MPEG4/ISO/AVC" colorSpace="yuv" frameRateMode="vfr" hasScalingMatrix="0" height="576" level="41" pixelAspectRatio="64:45" profile="high" refFrames="16" scanType="progressive" title="" width="718"/> <Stream id="112617" streamType="2" selected="1" codec="ac3" index="1" channels="2" bitrate="192" language="English" languageCode="eng" bitDepth="16" bitrateMode="cbr" codecID="A_AC3" dialogNorm="-31" duration="2214600" samplingRate="48000" title=""/> </Part> </Media> <Chapter id="32056" tag="The Trilogy Idea" index="1" startTimeOffset="0" endTimeOffset="140800"/> <Chapter id="32057" tag="Why Berlin?" index="2" startTimeOffset="140800" endTimeOffset="341440"/> <Chapter id="32058" tag="Playing the Songs" index="3" startTimeOffset="341440" endTimeOffset="695200"/> <Chapter id="32059" tag="Nervous?" index="4" startTimeOffset="695200" endTimeOffset="1126240"/> <Chapter id="32060" tag="The Fans" index="5" startTimeOffset="1126240" endTimeOffset="1416640"/> <Chapter id="32061" tag="Overall Impressions?" index="6" startTimeOffset="1416640" endTimeOffset="1685440"/> <Chapter id="32062" tag="The Film" index="7" startTimeOffset="1685440" endTimeOffset="1929760"/> <Chapter id="32063" tag="End of an Era?" index="8" startTimeOffset="1929760" endTimeOffset="2214680"/> </Video> <Video ratingKey="156960" key="/library/metadata/156960" guid="file:///F:/Musik/Multimedia/The%20Cure/Trilogy/Interview%202-behindthescenes.mkv" type="clip" title="Interview 2" summary="" index="3" thumb="/library/metadata/156960/thumb/1411761313" duration="90600" addedAt="1411761311" updatedAt="1411761313" chapterSource="" extraType="5"> <Media videoResolution="576" id="142382" duration="90600" bitrate="1343" width="720" height="564" aspectRatio="1.85" audioChannels="2" audioCodec="ac3" videoCodec="h264" container="mkv" videoFrameRate="PAL" optimizedForStreaming="0"> <Part id="143192" key="/library/parts/143192/file.mkv" duration="90600" file="F:\Musik\Multimedia\The Cure\Trilogy\Interview 2-behindthescenes.mkv" size="15204245" container="mkv" optimizedForStreaming="0"> <Stream id="112618" streamType="1" codec="h264" index="0" bitrate="1124" anamorphic="1" bitDepth="8" cabac="1" chromaSubsampling="4:2:0" codecID="V_MPEG4/ISO/AVC" colorSpace="yuv" frameRateMode="vfr" hasScalingMatrix="0" height="564" level="41" pixelAspectRatio="65535:46043" profile="high" refFrames="16" scanType="progressive" title="" width="720"/> <Stream id="112619" streamType="2" selected="1" codec="ac3" index="1" channels="2" bitrate="192" language="English" languageCode="eng" bitDepth="16" bitrateMode="cbr" codecID="A_AC3" dialogNorm="-31" duration="90600" samplingRate="48000" title=""/> </Part> </Media> </Video> <Video ratingKey="156961" key="/library/metadata/156961" guid="file:///F:/Musik/Multimedia/The%20Cure/Trilogy/Bloodflowers%20Set-scene.mkv" type="clip" title="Bloodflowers Set" summary="" index="4" thumb="/library/metadata/156961/thumb/1411761313" duration="3626301" addedAt="1411761311" updatedAt="1411761313" chapterSource="media" extraType="6"> <Media videoResolution="576" id="142383" duration="3626301" bitrate="2732" width="716" height="576" aspectRatio="1.78" audioChannels="2" audioCodec="aac" videoCodec="h264" container="mkv" videoFrameRate="PAL" optimizedForStreaming="0"> <Part id="143193" key="/library/parts/143193/file.mkv" duration="3626301" file="F:\Musik\Multimedia\The Cure\Trilogy\Bloodflowers Set-scene.mkv" size="1238401119" container="mkv" optimizedForStreaming="0"> <Stream id="112620" streamType="1" codec="h264" index="0" bitrate="2732" anamorphic="1" bitDepth="8" cabac="1" chromaSubsampling="4:2:0" codecID="V_MPEG4/ISO/AVC" colorSpace="yuv" frameRateMode="vfr" hasScalingMatrix="0" height="576" level="41" pixelAspectRatio="64:45" profile="high" refFrames="16" scanType="progressive" title="" width="716"/> <Stream id="112621" streamType="2" selected="1" codec="aac" index="1" channels="2" language="English" languageCode="eng" codecID="A_AAC" duration="3626301" profile="lc" samplingRate="48000" title=""/> <Stream id="112622" streamType="2" codec="flac" index="2" channels="2" language="English" languageCode="eng" bitDepth="16" bitrateMode="vbr" codecID="A_FLAC" duration="3626301" samplingRate="48000" title=""/> </Part> </Media> <Chapter id="31739" tag="Intro" index="1" startTimeOffset="0" endTimeOffset="34320"/> <Chapter id="31884" tag="Out of This World" index="2" startTimeOffset="34320" endTimeOffset="448600"/> <Chapter id="31885" tag="Watching Me Fall" index="3" startTimeOffset="448600" endTimeOffset="1133320"/> <Chapter id="31886" tag="Where the Birds Always Sing" index="4" startTimeOffset="1133320" endTimeOffset="1481640"/> <Chapter id="31887" tag="Maybe Someday" index="5" startTimeOffset="1481640" endTimeOffset="1800760"/> <Chapter id="31888" tag="The Last Day of Summer" index="6" startTimeOffset="1800760" endTimeOffset="2149720"/> <Chapter id="31889" tag="There Is No If..." index="7" startTimeOffset="2149720" endTimeOffset="2389640"/> <Chapter id="31890" tag="The Loudest Sound" index="8" startTimeOffset="2389640" endTimeOffset="2708240"/> <Chapter id="31891" tag="39" index="9" startTimeOffset="2708240" endTimeOffset="3149080"/> <Chapter id="31892" tag="Bloodflowers" index="10" startTimeOffset="3149080" endTimeOffset="3626360"/> </Video> <Video ratingKey="156962" key="/library/metadata/156962" guid="file:///F:/Musik/Multimedia/The%20Cure/Trilogy/DVD%20Credits-scene.mkv" type="clip" title="DVD Credits" summary="" index="5" thumb="/library/metadata/156962/thumb/1411761314" duration="173200" addedAt="1411761311" updatedAt="1411761314" chapterSource="" extraType="6"> <Media videoResolution="576" id="142384" duration="173200" bitrate="310" width="720" height="576" aspectRatio="1.78" audioChannels="2" audioCodec="ac3" videoCodec="h264" container="mkv" videoFrameRate="PAL" optimizedForStreaming="0"> <Part id="143194" key="/library/parts/143194/file.mkv" duration="173200" file="F:\Musik\Multimedia\The Cure\Trilogy\DVD Credits-scene.mkv" size="6708782" container="mkv" optimizedForStreaming="0"> <Stream id="112623" streamType="1" codec="h264" index="0" bitrate="112" anamorphic="1" bitDepth="8" cabac="1" chromaSubsampling="4:2:0" codecID="V_MPEG4/ISO/AVC" colorSpace="yuv" frameRate="25.000" frameRateMode="vfr" hasScalingMatrix="0" height="576" level="41" pixelAspectRatio="64:45" profile="high" refFrames="16" scanType="progressive" title="" width="720"/> <Stream id="112624" streamType="2" selected="1" codec="ac3" index="1" channels="2" bitrate="192" language="English" languageCode="eng" bitDepth="16" bitrateMode="cbr" codecID="A_AC3" dialogNorm="-27" duration="173200" samplingRate="48000" title=""/> </Part> </Media> </Video> <Video ratingKey="156963" key="/library/metadata/156963" guid="file:///F:/Musik/Multimedia/The%20Cure/Trilogy/Disintegration%20Set-scene.mkv" type="clip" title="Disintegration Set" summary="" index="6" thumb="/library/metadata/156963/thumb/1411761314" duration="4512341" addedAt="1411761311" updatedAt="1411761314" chapterSource="media" extraType="6"> <Media videoResolution="576" id="142385" duration="4512341" bitrate="2464" width="714" height="576" aspectRatio="1.78" audioChannels="2" audioCodec="aac" videoCodec="h264" container="mkv" videoFrameRate="PAL" optimizedForStreaming="0"> <Part id="143195" key="/library/parts/143195/file.mkv" duration="4512341" file="F:\Musik\Multimedia\The Cure\Trilogy\Disintegration Set-scene.mkv" size="1389930023" container="mkv" optimizedForStreaming="0"> <Stream id="112625" streamType="1" codec="h264" index="0" bitrate="2464" anamorphic="1" bitDepth="8" cabac="1" chromaSubsampling="4:2:0" codecID="V_MPEG4/ISO/AVC" colorSpace="yuv" frameRateMode="vfr" hasScalingMatrix="0" height="576" level="41" pixelAspectRatio="65535:46048" profile="high" refFrames="16" scanType="progressive" title="" width="714"/> <Stream id="112626" streamType="2" selected="1" codec="aac" index="1" channels="2" language="English" languageCode="eng" codecID="A_AAC" duration="4512341" profile="lc" samplingRate="48000" title=""/> <Stream id="112627" streamType="2" codec="flac" index="2" channels="2" language="English" languageCode="eng" bitDepth="16" bitrateMode="vbr" codecID="A_FLAC" duration="4512341" samplingRate="48000" title=""/> </Part> </Media> <Chapter id="31739" tag="Intro" index="1" startTimeOffset="0" endTimeOffset="104360"/> <Chapter id="32033" tag="Plainsong" index="2" startTimeOffset="104360" endTimeOffset="399160"/> <Chapter id="32049" tag="Pictures of You" index="3" startTimeOffset="399160" endTimeOffset="856720"/> <Chapter id="32050" tag="Closedown" index="4" startTimeOffset="856720" endTimeOffset="1121320"/> <Chapter id="32043" tag="Lovesong" index="5" startTimeOffset="1121320" endTimeOffset="1345160"/> <Chapter id="32051" tag="Last Dance" index="6" startTimeOffset="1345160" endTimeOffset="1648480"/> <Chapter id="31881" tag="Lullaby" index="7" startTimeOffset="1648480" endTimeOffset="1930720"/> <Chapter id="32009" tag="Fascination Street" index="8" startTimeOffset="1930720" endTimeOffset="2248680"/> <Chapter id="32052" tag="Prayers for Rain" index="9" startTimeOffset="2248680" endTimeOffset="2605040"/> <Chapter id="32053" tag="The Same Deep Water as You" index="10" startTimeOffset="2605040" endTimeOffset="3162360"/> <Chapter id="32034" tag="Disintegration" index="11" startTimeOffset="3162360" endTimeOffset="3665160"/> <Chapter id="32054" tag="Homesick" index="12" startTimeOffset="3665160" endTimeOffset="4098080"/> <Chapter id="32055" tag="Untitled" index="13" startTimeOffset="4098080" endTimeOffset="4512400"/> </Video> <Video ratingKey="156964" key="/library/metadata/156964" guid="file:///F:/Musik/Multimedia/The%20Cure/Trilogy/Encore-scene.mkv" type="clip" title="Encore" summary="" index="7" thumb="/library/metadata/156964/thumb/1411761315" duration="914221" addedAt="1411761312" updatedAt="1411761315" chapterSource="media" extraType="6"> <Media videoResolution="576" id="142386" duration="914221" bitrate="2783" width="718" height="576" aspectRatio="1.78" audioChannels="2" audioCodec="aac" videoCodec="h264" container="mkv" videoFrameRate="PAL" optimizedForStreaming="0"> <Part id="143196" key="/library/parts/143196/file.mkv" duration="914221" file="F:\Musik\Multimedia\The Cure\Trilogy\Encore-scene.mkv" size="318060972" container="mkv" optimizedForStreaming="0"> <Stream id="112628" streamType="1" codec="h264" index="0" bitrate="2783" anamorphic="1" bitDepth="8" cabac="1" chromaSubsampling="4:2:0" codecID="V_MPEG4/ISO/AVC" colorSpace="yuv" frameRateMode="vfr" hasScalingMatrix="0" height="576" level="41" pixelAspectRatio="64:45" profile="high" refFrames="16" scanType="progressive" title="" width="718"/> <Stream id="112629" streamType="2" selected="1" codec="aac" index="1" channels="2" language="English" languageCode="eng" codecID="A_AAC" duration="914221" profile="lc" samplingRate="48000" title=""/> <Stream id="112630" streamType="2" codec="flac" index="2" channels="2" language="English" languageCode="eng" bitDepth="16" bitrateMode="vbr" codecID="A_FLAC" duration="914221" samplingRate="48000" title=""/> </Part> </Media> <Chapter id="32014" tag="If Only Tonight We Could Sleep" index="1" startTimeOffset="0" endTimeOffset="333120"/> <Chapter id="32015" tag="The Kiss" index="2" startTimeOffset="333120" endTimeOffset="914280"/> </Video> <Video ratingKey="156965" key="/library/metadata/156965" guid="file:///F:/Musik/Multimedia/The%20Cure/Trilogy/Ester%20Egg%20Mic%20Cam-scene.mkv" type="clip" title="Ester Egg Mic Cam" summary="" index="8" thumb="/library/metadata/156965/thumb/1411761315" duration="555200" addedAt="1411761312" updatedAt="1411761315" chapterSource="" extraType="6"> <Media videoResolution="480" id="142387" duration="555200" bitrate="747" width="524" height="576" aspectRatio="1.33" audioChannels="2" audioCodec="ac3" videoCodec="h264" container="mkv" videoFrameRate="PAL" optimizedForStreaming="0"> <Part id="143197" key="/library/parts/143197/file.mkv" duration="555200" file="F:\Musik\Multimedia\The Cure\Trilogy\Ester Egg Mic Cam-scene.mkv" size="51873842" container="mkv" optimizedForStreaming="0"> <Stream id="112631" streamType="1" codec="h264" index="0" bitrate="541" anamorphic="1" bitDepth="8" cabac="1" chromaSubsampling="4:2:0" codecID="V_MPEG4/ISO/AVC" colorSpace="yuv" frameRateMode="vfr" hasScalingMatrix="0" height="576" level="41" pixelAspectRatio="64:45" profile="high" refFrames="16" scanType="progressive" title="" width="524"/> <Stream id="112632" streamType="2" selected="1" codec="ac3" index="1" channels="2" bitrate="192" language="English" languageCode="eng" bitDepth="16" bitrateMode="cbr" codecID="A_AC3" dialogNorm="-31" duration="555200" samplingRate="48000" title=""/> </Part> </Media> </Video> <Video ratingKey="156966" key="/library/metadata/156966" guid="file:///F:/Musik/Multimedia/The%20Cure/Trilogy/Ester%20Egg%20Mobile%20Cam-scene.mkv" type="clip" title="Ester Egg Mobile Cam" summary="" index="9" thumb="/library/metadata/156966/thumb/1411761316" duration="348200" addedAt="1411761312" updatedAt="1411761316" chapterSource="" extraType="6"> <Media videoResolution="sd" id="142388" duration="348200" bitrate="1421" width="720" height="376" aspectRatio="2.35" audioChannels="2" audioCodec="ac3" videoCodec="h264" container="mkv" videoFrameRate="PAL" optimizedForStreaming="0"> <Part id="143198" key="/library/parts/143198/file.mkv" duration="348200" file="F:\Musik\Multimedia\The Cure\Trilogy\Ester Egg Mobile Cam-scene.mkv" size="61834874" container="mkv" optimizedForStreaming="0"> <Stream id="112633" streamType="1" codec="h264" index="0" bitrate="1200" anamorphic="1" bitDepth="8" cabac="1" chromaSubsampling="4:2:0" codecID="V_MPEG4/ISO/AVC" colorSpace="yuv" frameRateMode="vfr" hasScalingMatrix="0" height="376" level="41" pixelAspectRatio="13107:9218" profile="high" refFrames="16" scanType="progressive" title="" width="720"/> <Stream id="112634" streamType="2" selected="1" codec="ac3" index="1" channels="2" bitrate="192" language="English" languageCode="eng" bitDepth="16" bitrateMode="cbr" codecID="A_AC3" dialogNorm="-31" duration="348200" samplingRate="48000" title=""/> </Part> </Media> </Video> </Extras> </Video> </MediaContainer>

That’s good to see improvements. Sorry i haven’t been on the forums in months. The new layout confuses the heck out of me.

Question: all my MKV’s contain embedded chapter info, is this supported as well??

Jaap

@Jaap_van_Ekris said:
Question: all my MKV’s contain embedded chapter info, is this supported as well??

Yes.
Unless we are talking about “mkv ordered chapters” or “seamless branching” which are used to make several different “cut” versions of one movie (theatrical vs. extended or behind-the-scenes commentary etc.) within one file. This is not supported.

@Breezytm said:
That’s good to see improvements. Sorry i haven’t been on the forums in months. The new layout confuses the heck out of me.

The layout is not bad per se. Just the color selection is “unlucky”.
https://forums.plex.tv/discussion/175304/dont-like-the-color-schema-write-your-own

Just to follow up on the discussion in ios forum, its disappointing chapter images require you to use video preview thumbnails (BIF’S). Can plex please implement simple chapter marker excration images like media browser 3 (emby?) the media preview BIF setting is the most draining time consuming, hard drive filling setting i have used in a media player. Instead of extracting 10 simple chapter images, it builds hundreds. Its just not practical for most large libraries. Emby or mediabrowser 3 ffmpeg chapter extraction did my entire library for chapter images in 2 hours, plex video preview thumbnails would have taken days. Bit disappointing this is required for chapter images at least in ios.

@Ghostm said:
Can plex please implement simple chapter marker excration images like media browser 3 (emby?) the media preview BIF setting is the most draining time consuming, hard drive filling setting i have used in a media player. Instead of extracting 10 simple chapter images, it builds hundreds. Its just not practical for most large libraries.

I Agree with this one. With 500+ movies in a library, and a lot of TV series, it would probably kill my setup…

Jaap

It can be a schedule task that runs off peek hours. MB3 also has it and you can set it up to run whenever you desire.

@Breezytm said:
It can be a schedule task that runs off peek hours. MB3 also has it and you can set it up to run whenever you desire.

It isn’t the CPU-load, it is the colossal overhead that such a library generates. Turning on the index creates a “thumbnail” for every x seconds. With 500+ Full-HD movies this will become huge.

Jaap

Ha. Beauty comes with a cost :))

@Breezytm said:
Ha. Beauty comes with a cost :))
It doesn’t have to. When they just create a thumbnail for every chapter (and not every X seconds) than on average a 28 screendumps a movie would do the trick.

Jaap

I don’t disagree.

Liking this old thread, as I would still like to see consistent chapter support across all clients, and the GUI based chapter selection indicated in this thread is a great idea, IMO.

Early 2021 clean-up: implemented