TortugaPower / BookPlayer

Player for your DRM-free audiobooks
GNU General Public License v3.0
1.64k stars 195 forks source link

Support for .cue file chapter lists #1195

Open frykauf opened 1 month ago

frykauf commented 1 month ago

Feature request

GianniCarlo commented 1 month ago

I need to think more on when in the app lifecycle would be better to read the .cue file instead of using (if available) the encoded chapters in the audio file. Could you provide an example of a .cue file to inspect the internal format?

frykauf commented 1 month ago

Hi, yeah no problem. Mostly the cue files I've looked at look like this for single m4b files


FILE "One example.m4b" MP4
TRACK 1 AUDIO
  TITLE "Chapter 01"
  INDEX 01 0:0:00
TRACK 2 AUDIO
  TITLE "Chapter 02"
  INDEX 01 0:24:21
TRACK 3 AUDIO
  TITLE "Chapter 03"
  INDEX 01 15:39:71
TRACK 4 AUDIO
  TITLE "Chapter 04"
  INDEX 01 25:54:20
TRACK 5 AUDIO
  TITLE "Chapter 05"
  INDEX 01 39:14:55
TRACK 6 AUDIO
  TITLE "Chapter 06"
  INDEX 01 51:11:60
TRACK 7 AUDIO
  TITLE "Chapter 07"
  INDEX 01 63:50:48
TRACK 8 AUDIO
  TITLE "Chapter 08"
  INDEX 01 86:6:51
TRACK 9 AUDIO
  TITLE "Chapter 09"
  INDEX 01 98:22:18
TRACK 10 AUDIO
  TITLE "Chapter 10"
  INDEX 01 113:2:03
TRACK 11 AUDIO
  TITLE "Chapter 11"
  INDEX 01 126:14:81
TRACK 12 AUDIO
  TITLE "Chapter 12"
  INDEX 01 140:11:54
TRACK 13 AUDIO
  TITLE "Chapter 13"
  INDEX 01 152:21:13
TRACK 14 AUDIO
  TITLE "Chapter 14"
  INDEX 01 164:54:81
TRACK 15 AUDIO
  TITLE "Chapter 15"
  INDEX 01 181:7:31
TRACK 16 AUDIO
  TITLE "Chapter 16"
  INDEX 01 193:30:09
TRACK 17 AUDIO
  TITLE "Chapter 17"
  INDEX 01 208:15:19
TRACK 18 AUDIO
  TITLE "Chapter 18"
  INDEX 01 225:13:41
TRACK 19 AUDIO
  TITLE "Chapter 19"
  INDEX 01 236:8:28
TRACK 20 AUDIO
  TITLE "Chapter 20"
  INDEX 01 248:33:87
TRACK 21 AUDIO
  TITLE "Chapter 21"
  INDEX 01 257:21:13
TRACK 22 AUDIO
  TITLE "Chapter 22"
  INDEX 01 268:54:31
TRACK 23 AUDIO
  TITLE "Chapter 23"
  INDEX 01 281:52:39
TRACK 24 AUDIO
  TITLE "Chapter 24"
  INDEX 01 295:7:70
TRACK 25 AUDIO
  TITLE "Chapter 25"
  INDEX 01 308:48:59
TRACK 26 AUDIO
  TITLE "Chapter 26"
  INDEX 01 321:12:84
TRACK 27 AUDIO
  TITLE "Chapter 27"
  INDEX 01 338:54:92
TRACK 28 AUDIO
  TITLE "Chapter 28"
  INDEX 01 352:6:00
TRACK 29 AUDIO
  TITLE "Chapter 29"
  INDEX 01 369:35:54
TRACK 30 AUDIO
  TITLE "Chapter 30"
  INDEX 01 381:27:58
TRACK 31 AUDIO
  TITLE "Chapter 31"
  INDEX 01 401:58:19
TRACK 32 AUDIO
  TITLE "Chapter 32"
  INDEX 01 421:28:34
TRACK 33 AUDIO
  TITLE "Chapter 33"
  INDEX 01 433:35:17
TRACK 34 AUDIO
  TITLE "Chapter 34"
  INDEX 01 447:19:36
TRACK 35 AUDIO
  TITLE "Chapter 35"
  INDEX 01 462:8:66
TRACK 36 AUDIO
  TITLE "Chapter 36"
  INDEX 01 471:12:71
TRACK 37 AUDIO
  TITLE "Chapter 37"
  INDEX 01 488:17:73
TRACK 38 AUDIO
  TITLE "Chapter 38"
  INDEX 01 500:57:86
TRACK 39 AUDIO
  TITLE "Chapter 39"
  INDEX 01 524:26:73
TRACK 40 AUDIO
  TITLE "Chapter 40"
  INDEX 01 539:37:13
TRACK 41 AUDIO
  TITLE "Chapter 41"
  INDEX 01 553:45:52
TRACK 42 AUDIO
  TITLE "Chapter 42"
  INDEX 01 565:34:43
TRACK 43 AUDIO
  TITLE "Chapter 43"
  INDEX 01 589:15:70
TRACK 44 AUDIO
  TITLE "Chapter 44"
  INDEX 01 608:20:58
TRACK 45 AUDIO
  TITLE "Chapter 45"
  INDEX 01 618:26:06
TRACK 46 AUDIO
  TITLE "Chapter 46"
  INDEX 01 621:44:45
TRACK 47 AUDIO
  TITLE "Chapter 47"
  INDEX 01 634:43:79
TRACK 48 AUDIO
  TITLE "Chapter 48"
  INDEX 01 648:23:78
TRACK 49 AUDIO
  TITLE "Chapter 49"
  INDEX 01 664:14:21
TRACK 50 AUDIO
  TITLE "Chapter 50"
  INDEX 01 673:20:26
TRACK 51 AUDIO
  TITLE "Chapter 51"
  INDEX 01 682:45:31
TRACK 52 AUDIO
  TITLE "Chapter 52"
  INDEX 01 718:29:49
TRACK 53 AUDIO
  TITLE "Chapter 53"
  INDEX 01 738:58:85
TRACK 54 AUDIO
  TITLE "Chapter 54"
  INDEX 01 752:41:09
TRACK 55 AUDIO
  TITLE "Chapter 55"
  INDEX 01 762:49:99
TRACK 56 AUDIO
  TITLE "Chapter 56"
  INDEX 01 784:14:68
TRACK 57 AUDIO
  TITLE "Chapter 57"
  INDEX 01 795:28:77
TRACK 58 AUDIO
  TITLE "Chapter 58"
  INDEX 01 805:16:66
TRACK 59 AUDIO
  TITLE "Chapter 59"
  INDEX 01 813:32:13
TRACK 60 AUDIO
  TITLE "Chapter 60"
  INDEX 01 814:31:36
TRACK 61 AUDIO
  TITLE "Chapter 61"
  INDEX 01 819:5:14

File name: "One example.cue"


Differences I've seen:

TITLE can look like "TITLE "Chapter 48: The Strike on Big Beach (I)"

I also saw FILE line like this FILE "One example.m4b" MP3


I can look through more examples but this is what I've seen audiobooks .cue files to look like

It's possible to have cue lists for individual mp3 tracks like music albums sometimes do but I guess it's unnecessary with audiobooks that are split into individual mp3 files by each chapter.

frykauf commented 1 month ago

This website calls it cuesheets as playlists.

With the single m4b file it's always referencing the same audio track in a single FILE instead of having multiple FILE lines.

They actually have a demo example file that shows how a music album .cue file can look like (multiple files, metadata,etc.) - but I've never seen an audiobook cue file for multi file audiobook because it's not needed.

Music album cue file example