Deleting QuickTime chapter titles in an m4b

I have an audiobook in an m4b file with incorrect chapter titles that I am trying to fix. I have used Mp3tag version 3.17 to alter the titles and when I test it with VLC or Foobar2000, it seems to have worked. Unfortunately, when I load it into my Android phone and play it with Listen Audiobook Player, it still shows the previous, erroneous chapter titles. I have tried clearing the cache and the data from LAP and the problem persists. After doing some research, my suspicion is that the existing erroneous tags are QuickTime tags and Mp3tag is adding Nero tags. I suppose that VLC and Foobar2000 both prefer Nero and LAP must default to QuickTime. I have many other books that I have been playing with LAP and I haven't yet encountered this problem outside of this particular file.

I would like a way to get LAP to display the correct chapter titles that I have entered using Mp3tag. It seems that the easiest way of achieving this is to strip the QuickTime tags and only leave the Nero tags. Several of the other m4b files I have been using definitely have Nero tags and LAP reads those fine (I know this because I made them myself with Foobar2000 and made sure there were no tags at all before entering my own.) This leads me to believe the problem only arises when both formats are present.

How can I do this? The "strip MP4 chapters" utility removes the chapters entirely, not just the titles. Looking in these forums, I have seen evidence that Mp3tag should be able to read and remove QuickTime tags, just not write them. I cannot figure out how to do this though. I would appreciate it if some one would tell me how to do that, or if not then recommend another application that could accomplish this. I am not very familiar with ffmpeg or avisynth, but I am a whiz at copy/pasting commands into a terminal.

If I understand your question, you should be able to see the chapters like they were individual files if you check the box for this in the Options > Tag > Advanced menu. From there, renaming them is simple.

Thank you for the response. Unfortunately, this does not solve my problem. Perhaps I wasn't clear enough. I am aware of how to alter chapter titles. I have done so. Loading the m4b file with Mp3tag, VLC, or Foobar2000 shows that the chapter titles have been altered and are now correct. The problem is that some player programs do not reflect the changes that have been made. The example that concerns me is Listen Audiobook Player. It still shows the chapter titles as they were before I fixed them. I consider this to be a problem in Mp3tag and not Listen Audiobook Player because if Mp3tag were functioning as expected (deleting any trace of the previous erroneous chapter titles), then there is no way that any other program could pull that information from the file.

My guess is this has something to do with different styles of mp4 tags (Nero vs QuickTime). From what I can tell, Mp3tag appears to be writing chapter titles using the Nero standard (hence why VLC and Foobar2000 read them correctly) but leaving the incorrect QuickTime chapters alone instead of removing them (hence why Listen Audiobook Player shows the wrong ones). According to some old posts I found, as of version 2.91e, Mp3tag should be able to read and remove QuickTime chapters. If my guess is correct, I would like to know how to remove the QuickTime chapter tags (or at least change them to match the Nero tags). If my guess is incorrect, I would like to know what is really going on so I can figure out how to resolve the issue.

I apologize if I was/am not being clear enough. I am new to these forums and am trying to be as clear as possible.

I would suggest that perhaps Listen Audiobook Player has a database that it holds once it has loaded a file. Some players have an option to refresh their database, that would be the first step I would look for. If that doesn’t work or isn’t an option, try removing that book from this player, then adding the updated file again to see if that returns the correct results.

This would suggest the changes have in fact been made correctly.

Some players have an option to refresh their database, that would be the first step I would look for. If that doesn’t work or isn’t an option, try removing that book from this player, then adding the updated file again to see if that returns the correct results.

I have done this. I removed the file in question from my device, cleared the cache, and cleared all data from Listen Audiobook Player (this seemed to be a full reset as I then had to reset all my settings and preferences and reload all files into the database.). I then reloaded the file onto my device. The same incorrect chapter titles were still showing.

This would suggest the changes have in fact been made correctly.

I agree. Unfortunately, the incorrect data still shows up in some applications (like Listen Audiobook Player.)

Sorry. It may be that I just wasn't comprehending, you know, words at the moment I tried to reply to you.

InAudible does something really smart, if you use that to decrypt your files for personal archival. It writes the chapter metadata by both Nero and Quicktime methods. Libation, unfortunately, does not do the same. I tried an app called Drax, and that writes chapters to Nero (I think?) because when you load the file in Mp3Tag, it doesn't look like they've been edited.

I recently tried another program called LosslessCut, and while I haven't tested it extensively, I BELIEVE it also writes chapter metadata by both means.

You can tell if both chaptering methods are present if you look at the file with MediaInfo. If both are present, the chapters will be listed twice at the bottom of the rest of the metadata. Examples:

before LLC_m4b.txt (4.7 KB)
after LLC_m4b.txt (4.9 KB)

As you can see, the chapter titles are changed in both chapter menus, meaning both the Nero and Quicktime chapters were edited.

It's a $20 app, but perhaps worth it if you can't find another way.

Honestly, having myself written a library that parses and writes chapter metadata, I don't blame people for chosing Nero, because it's so much more straightforward. The Quicktime method is a pain. Do not recommend.

Thank you for the recommendations. I downloaded MediaInfo and confirmed my suspicions. The chapter titles were indeed stored in both formats. I am unsure what you are recommending beyond that though. The other applications you mentioned are for audio/video editing and encoding. Should I try using them just for tagging purposes? They seem like overkill for such a small task and having been playing around with inAudible for a few minutes, I do not even see a way to do this without re-encoding the file. This specific file is the only one I have noticed that has this issue so far, but I would be surprised if it is the only one that does. I would like a solution that I could use on all of my audiobooks, and I do not want to re-encode them.

Since I have verified that the problem is what I thought, my preference would be to simply use Mp3tag to remove all QuickTime data and only keep the Nero data. Is this possible? According to the v2.92 release notes, Mp3tag should have "support for reading and removing QuickTime chapter information." Being able to load a hundred m4b files into Mp3tag and simply erase all QuickTime data in one fell swoop (while retaining the Nero data) is a much more desirable solution than learning how to use other applications and manually entering the same data I have already spent hours entering with Mp3tag just to have two sets of redundant data in each file that would need to be updated separately in the future.

I was assuming your issue was that the titles were only being stored in one format, and that's why your player app wasn't recognizing the ones written by Mp3Tag/FB2k, etc. I was suggesting that another app that wrote chapter titles the other way (or both ways, so you would only need to edit once) might help.

None of the apps I suggested re-encodes (except InAudible, and that only re-encodes if you're not starting with an AAX file.)

But you're right, buying a whole other app for one small step is overkill. I just threw it out as an alternative, in case it might help to have an app that would write your title edits to BOTH chaptering methods at once, which LLC does.

Thank you for your input. Your suggestion to use MediaInfo was helpful in verifying the problem. Hopefully somebody else reading this can explain to me how to use Mp3tag to remove QuickTime chapter information. I wish this was as easy as removing id3v1 tags from mp3s while leaving the id3v2 tags in place (something mp3 tag makes exceedingly easy.)

Maybe create a Mp3tag Tool, using Exiftool.
Here's a thread concerning a similar problem:

@ryerman
Unfortunately, it seems like exiftool can't write QuickTime chapter tags according to QuickTime Tags

Please have a look for QuickTime TrackRef Tags or QuickTime UserData Tags or chpl or chap
They are all not writable for exiftool. As far as I understand this also means it is not deletable.
Or I'm wrong?

But after a short test with the command
exiftool -QuickTime:ChapterList= myAudioFile.m4b
exiftool seems to strip the chapter after all?
(Beware the space after the ChapterList=
before the filename starts)

chpl is the atom you want to keep if you want the Nero chapters.

chap isn’t the atom to delete if you want to get rid of the QuickTime chapters. You would need to delete the entire trak atom from which the chap atom descends, because that trak is the text track that contains all the chaptering data. The chap atom is just the atom that identifies the purpose of the trak atom.

I agree: the Exiftool documentation says that Quicktime tags are not writable.
If Quicktime tags are truly the problem with the OP's files, then Exiftool may not provide a solution.

Sometimes there are multiple tags with the same name but in different groups.
Your example shows the ChapterList field being deleted from a group called MOV-Movie-UserData. It seems that is writable.

It would be useful to have a sample file that exhibits the OP's problems compared to what is expected.

I downloaded Exiftool and tried the command listed above. I believe it removed the Nero tags but left the QuickTime tags in tact.

Here is the file I have been working on the last few days. At this point, I have found a few others in my collection that have the same issue, but the file sizes are rather large so I'm just uploading this one for now. If it would help to upload another, let me know.

Here is the output from MediaInfo:

General
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/mp41)
File size : 751 MiB
Duration : 13 h 46 min
Overall bit rate mode : Variable
Overall bit rate : 127 kb/s
Track name : Ready Player Two
Track_More : Days after winning OASIS founder James Halliday’s contest, Wade Watts makes a discovery that changes everything. Hidden within Halliday’s vaults, waiting for his heir to find, lies a technological advancement that will once again change the world and make the OASIS 1,000 times more wondrous - and addictive - than even Wade dreamed possible. With it comes a new riddle, and a new quest - a last Easter egg from Halliday, hinting at a mysterious prize. And an unexpected, impossibly powerful, and dangerous new rival awaits, one who’ll kill millions to get what he wants.
Performer : Ernest Cline
Composer : Wil Wheaton
Recorded date : 2020
Tagged date : UTC 2020-11-24 08:43:58
Writing application : inAudible 1.97
Cover : Yes

Menu #1
ID : 2
Format : Timed Text
Codec ID : text
Duration : 13 h 46 min
Language : English
Bit rate mode : CBR
Menu For : 1
00:00:00.000 : 001
00:00:15.371 : 002
00:21:13.823 : 003
00:48:21.937 : 004
00:49:47.340 : 005
01:28:29.033 : 006
02:01:13.604 : 007
02:34:55.946 : 008
03:05:31.297 : 009
03:24:27.427 : 010
03:44:39.531 : 011
04:02:49.151 : 012
04:26:38.711 : 013
04:59:09.721 : 014
04:59:35.309 : 015
05:32:31.374 : 016
05:56:56.135 : 017
06:19:11.143 : 018
06:41:51.159 : 019
07:04:54.349 : 020
07:26:25.425 : 021
07:41:35.693 : 022
08:01:55.414 : 023
08:33:22.755 : 024
08:53:29.775 : 025
09:17:12.647 : 026
09:51:52.111 : 027
10:17:04.542 : 028
10:45:49.460 : 029
11:22:47.244 : 030
11:49:57.610 : 031
12:01:18.396 : 032
12:01:55.223 : 033
12:33:24.166 : 034
12:46:29.929 : 035
13:05:11.662 : 036
13:33:22.980 : 037
13:46:24.610 : 038
Bit rate mode : Constant

Menu #2
00:00:00.000 : Intro
00:00:15.371 : Cutscene
00:21:13.823 : 0000
00:48:21.937 : Level 04
00:49:47.340 : 0001
01:28:29.033 : 0002
02:01:13.604 : 0003
02:34:55.946 : 0004
03:05:31.297 : 0005
03:24:27.427 : 0006
03:44:39.531 : 0007
04:02:49.151 : 0008
04:26:38.711 : 0009
04:59:09.721 : Level 05
04:59:35.309 : 0010
05:32:31.374 : 0011
05:56:56.135 : 0012
06:19:11.143 : 0013
06:41:51.159 : 0014
07:04:54.349 : 0015
07:26:25.425 : 0016
07:41:35.693 : 0017
08:01:55.414 : 0018
08:33:22.755 : 0019
08:53:29.775 : 0020
09:17:12.647 : 0021
09:51:52.111 : 0022
10:17:04.542 : 0023
10:45:49.460 : 0024
11:22:47.244 : 0025
11:49:57.610 : 0026
12:01:18.396 : Level 06
12:01:55.223 : 0027
12:33:24.166 : 0028
12:46:29.929 : 0029
13:05:11.662 : 0030
13:33:22.980 : Continue?
13:46:24.610 : Outro

After running exiftool -QuickTime:ChapterList= myAudioFile.m4b as suggested, all of Menu #2 is gone and Menu #1 is renamed to simply Menu.

Edit: Menu #1 in the output above consists of incorrect chapter titles. I believe those are in the QuickTime style. Menu #2 are the chapter titles that I manually entered with Mp3tag and I believe they are in the Nero style. VLC, Foobar2000, and Mp3tag all only show the chapter titles in Menu #2. Listen Audiobook Player and inAudible only show the titles from Menu #1. MediaInfo is the only application I have found that shows both.

Question, and maybe this is stupid and obvious, but is there a reason this file uses an .mp4 extension rather than .m4b? I'm not sure it matters, that's just the first thing that grabbed my eye and I'm sort of spitballing here, because I don't have your player app to experiment with (I don't have an Android.) And I know that I've had audiobooks labeled .mp4 before and it caused things to act weird in some apps.

If there isn't, and the extension is unintentional, do the other files you're having an issue with have the .m4a/.m4b extension?

Meanwhile, I'm going to try a couple things.

The extension is m4b. Somehow, MediaFire changed the extension to mp4 when I uploaded it. And yes, all the files I'm working with have an m4b extension.

Ah, ok. Weird, but good to know. (I've had audiobooks from a couple sources actually download as MP4s before, and the result was a bit unpredictable, so I thought I would eliminate that possibility first. Like I said before, I'm spit-balling here, just trying things out by eliminating what the problem ISN'T so we can narrow in on what it is.)

I don't know if you have access to a Mac. I do, but I can't do very intensive stuff on it, which is why I've been using my PC for a lot of stuff lately. But there are a couple Mac apps that really help when analyzing these files.

I looked at your file with a Mac app called Yate. When right-clicking on a file in Yate, you have the option to display a raw data log, which basically shows you the layout of the atoms (or frames, if the file is MP3) with nesting.

This is your original file:

ready_player_two_raw_data.txt (3.4 KB)

As you can see, the moov atom has three children. Two of them are trak atoms, the third is a udta atom.

The first trak atom is your audio track. The second is the text track within which the Quicktime chapters are stored (in a really convoluted way that isn't fun to parse.)

The udta atom (which also stores your metadata) has a child called chpl. This is your Nero chapter list.

Using another Mac app called Subler, you file looks like this:

Highlighted, obviously, is your text (chapter) track. Since Subler is meant as a video tool as well as audio, it mostly deals with the Quicktime chaptering. But if you delete this text track, it will also delete the chpl atom.

What I've done is export the chapter data as a text file, delete the text track, then re-import the chapters. This rebuilds the Quicktime chapter track, but NOT the chpl atom. Upon doing a save-as, it also optimizes the file (restructures some of the atoms to get rid of unnecessary redundancy and compact padding where available.)

ready_player_two_rechaptered_raw_data.txt (3.5 KB)

So here is your file with ONLY Quicktime chapters, instead of both. If LAP reads Quicktime chapters, it should read these. If it doesn't, then your issue isn't what we assume it is.

Note that doing all this was a really quick process (like, less than a five minutes, it's taking me way, way longer to write this reply.) Once I exported the chapter data as a text file, I opened it with XCode (which has a much superior Find/Replace functionality) and did the following replace before re-importing the chapter data:

Screen Shot 2022-08-25 at 8.13.25 PM

# is substituted for an option XCode allows when using Find/Replace for any digits, so this search replaces the leading zero in all the chapter titles at once.

Try downloading the result and seeing if it works for you.

If so, and you have access to a Mac, Subler is available for free and might be a solution if you only need to do a few files.

If you don't have access to a Mac, download Drax and export your chapters (either way will work, as Subler recognizes both) as text files. Edit the chapter titles to what you want them to be, then PM me with links to the chapter text documents and files you want to apply them to. I can run them through Subler super quick and the whole thing can be done in way less time than it's taken us to have this conversation.

ETA: Upon further experimentation, I've discovered that if I take the file I rechaptered with Subler on my Mac, the Quicktime chapters Subler wrote are read by Mp3Tag, and if I make a minor edit and save in Mp3Tag, it will have both Quicktime and Nero chapters, and both will be accurate/edited.

So, if all else fails, whether you have a Mac or take my offer as stated above, you can export, delete, and re-import the chapters in Subler, then so a small edit in Mp3Tag, and you will have chapters that are accurate in both LAP and Mp3Tag.

Thank you. Unfortunately, I do not have ready access to a Mac. However, I could try running it on Linux through Darling. I'm sure I can figure out a way to make that work in any case (worst case scenario, I could use a VM or borrow a friend's computer). I do appreciate the offer though.

While this should enable me to have the correct chapter names showing in LAB for this particular book (which is the primary reason I created this post), what I would really like is a way to get rid of the QuickTime chapters completely and only use Nero. As I mentioned in my original post, LAB reads Nero chapters just fine in the absence of QuickTime data, but when both are present, it defaults to QuickTime. Editing Nero data is easy with Mp3tag. While it appears you have found me a way to edit the QuickTime chapters with Subler, it is definitely not as easy as with Mp3tag (especially since I don't often use a Mac.) In addition, as I inevitably find more m4b files in my collection with QuickTime chapters that I need to edit, I feel like I would need to store them separately or make a note of the ones that use QuickTime chapters vs the ones that use only Nero in case I need to edit them in the future. This is the inherent problem with unnecessary redundancy.

As the release notes for Mp3tag version 2.92 state that it has "support for reading and removing QuickTime chapter information", should I file a bug report? I didn't initially do that because I was worried there was a way to do this and I was just missing it. At this point, I get the impression that Mp3tag simply will not do this despite claiming that it can.

When I have a chance to download Darling and Subler to my laptop (Linux) and attempt the process you recommended, I will report back here and verify that it worked.

Have you tried Utils → Strip MP4 chapters from the right-click menu of the file? This should remove the chapter information from the file.

Mp3tag has no support for editing the QuickTime chapters, but removing chapter information and reading from it should work just fine.

The strip mp4 chapters utility completely removes all chapters, not just the titles of those chapters. Perhaps I am misunderstanding something about the way chapter information is stored in an m4b. I know that for an m4b that has chapter information stored in both ways, some applications (like Mp3tag, Foobar2000, and VLC) show chapter titles based on the Nero style information; some applications (like inAudible and Listen Audiobook Player) show chapter titles based on the Quicktime style information; and a few applications (like MediaInfo) show both. I wish to completely remove the QuickTime style chapter names and leave the Nero style chapter names. If this is not supported in Mp3tag, then that is my mistake.

If there is no easy way to remove whatever atom it is that holds the QuickTime chapters without removing the atom that holds the Nero chapters, then I will attempt the technique that Nolaine suggested.