[Bug]: Multiple series not imported from tags #2670

Closed
opened 2026-04-25 00:09:28 +02:00 by adam · 7 comments
Owner

Originally created by @tfranken90 on GitHub (Mar 18, 2025).

What happened?

I use Musicbrainz Picard to tag series metadata for my ABS files. It works great, but ABS does not import multiple values for the series and series-part tags. For example, this release only imports one series

https://musicbrainz.org/release/32abda55-8656-42a1-832f-0f384c9a32fd

What did you expect to happen?

ABS should be able to import multiple series and series-part values from tags

Steps to reproduce the issue

  1. tag release using this script with track and release relationship options turned on in Picard
$or($in(%releasetype%,audiobook),$in(%releasetype%,audio drama)

$setmulti(composer,$performer(spoken vocals))
$setmulti(series,%_releasegroup_series%)
$setmulti(series-part,%_releasegroup_seriesnumber%)
$setmulti(publisher,%label%)

$if(%writer%,
$setmulti(artist,$if2(%writer%),"\, ")
))

Audiobookshelf version

v2.19.5

How are you running audiobookshelf?

Other (list in "Additional Notes" box)

What OS is your Audiobookshelf server hosted from?

Linux

If the issue is being seen in the UI, what browsers are you seeing the problem on?

None

Logs


Additional Notes

using Podman instead of Docker

Originally created by @tfranken90 on GitHub (Mar 18, 2025). ### What happened? I use Musicbrainz Picard to tag series metadata for my ABS files. It works great, but ABS does not import multiple values for the series and series-part tags. For example, this release only imports one series https://musicbrainz.org/release/32abda55-8656-42a1-832f-0f384c9a32fd ### What did you expect to happen? ABS should be able to import multiple series and series-part values from tags ### Steps to reproduce the issue 1. tag release using this script with track and release relationship options turned on in Picard ``` $or($in(%releasetype%,audiobook),$in(%releasetype%,audio drama) $setmulti(composer,$performer(spoken vocals)) $setmulti(series,%_releasegroup_series%) $setmulti(series-part,%_releasegroup_seriesnumber%) $setmulti(publisher,%label%) $if(%writer%, $setmulti(artist,$if2(%writer%),"\, ") )) ``` ### Audiobookshelf version v2.19.5 ### How are you running audiobookshelf? Other (list in "Additional Notes" box) ### What OS is your Audiobookshelf server hosted from? Linux ### If the issue is being seen in the UI, what browsers are you seeing the problem on? None ### Logs ```shell ``` ### Additional Notes using Podman instead of Docker
adam added the enhancement label 2026-04-25 00:09:28 +02:00
adam closed this issue 2026-04-25 00:09:28 +02:00
Author
Owner

@advplyr commented on GitHub (Mar 19, 2025):

Can you share the ffprobe output of one of the audio files you embedded in this way?

https://www.audiobookshelf.org/guides/ffprobe#inspecting-an-audio-file

@advplyr commented on GitHub (Mar 19, 2025): Can you share the ffprobe output of one of the audio files you embedded in this way? https://www.audiobookshelf.org/guides/ffprobe#inspecting-an-audio-file
Author
Owner

@tfranken90 commented on GitHub (Mar 19, 2025):

{
  "programs": [],
  "streams": [
    {
      "index": 0,
      "codec_name": "mp3",
      "codec_long_name": "MP3 (MPEG audio layer 3)",
      "codec_type": "audio",
      "codec_tag_string": "[0][0][0][0]",
      "codec_tag": "0x0000",
      "sample_fmt": "fltp",
      "sample_rate": "44100",
      "channels": 2,
      "channel_layout": "stereo",
      "bits_per_sample": 0,
      "initial_padding": 0,
      "r_frame_rate": "0/0",
      "avg_frame_rate": "0/0",
      "time_base": "1/14112000",
      "start_pts": 0,
      "start_time": "0.000000",
      "duration_ts": 37403242128,
      "duration": "2650.456500",
      "bit_rate": "128000",
      "disposition": {
        "default": 0,
        "dub": 0,
        "original": 0,
        "comment": 0,
        "lyrics": 0,
        "karaoke": 0,
        "forced": 0,
        "hearing_impaired": 0,
        "visual_impaired": 0,
        "clean_effects": 0,
        "attached_pic": 0,
        "timed_thumbnails": 0,
        "non_diegetic": 0,
        "captions": 0,
        "descriptions": 0,
        "metadata": 0,
        "dependent": 0,
        "still_image": 0
      }
    },
    {
      "index": 1,
      "codec_name": "mjpeg",
      "codec_long_name": "Motion JPEG",
      "profile": "Baseline",
      "codec_type": "video",
      "codec_tag_string": "[0][0][0][0]",
      "codec_tag": "0x0000",
      "width": 500,
      "height": 500,
      "coded_width": 500,
      "coded_height": 500,
      "closed_captions": 0,
      "film_grain": 0,
      "has_b_frames": 0,
      "sample_aspect_ratio": "1:1",
      "display_aspect_ratio": "1:1",
      "pix_fmt": "yuvj420p",
      "level": -99,
      "color_range": "pc",
      "color_space": "bt470bg",
      "chroma_location": "center",
      "refs": 1,
      "r_frame_rate": "90000/1",
      "avg_frame_rate": "0/0",
      "time_base": "1/90000",
      "duration_ts": 238541085,
      "duration": "2650.456500",
      "bits_per_raw_sample": "8",
      "disposition": {
        "default": 0,
        "dub": 0,
        "original": 0,
        "comment": 0,
        "lyrics": 0,
        "karaoke": 0,
        "forced": 0,
        "hearing_impaired": 0,
        "visual_impaired": 0,
        "clean_effects": 0,
        "attached_pic": 1,
        "timed_thumbnails": 0,
        "non_diegetic": 0,
        "captions": 0,
        "descriptions": 0,
        "metadata": 0,
        "dependent": 0,
        "still_image": 0
      },
      "tags": {
        "comment": "Cover (front)"
      }
    }
  ],
  "chapters": [],
  "format": {
    "filename": "/media/audio/audiodrama/Christie, Agatha/Drama/2004-12-24 The Adventure of the Christmas Pudding (2004-12-24)/01  2004-12-24_ Afternoon Play _The Adventure of the Christmas Pudding'.mp3",
    "nb_streams": 2,
    "nb_programs": 0,
    "format_name": "mp3",
    "format_long_name": "MP2/3 (MPEG audio layer 2/3)",
    "start_time": "0.000000",
    "duration": "2650.456500",
    "size": "42505773",
    "bit_rate": "128297",
    "probe_score": 51,
    "tags": {
      "title": "2004-12-24: Afternoon Play \"The Adventure of the Christmas Pudding'",
      "artist": "Michael Bakewell; Agatha Christie",
      "track": "1/1",
      "album": "The Adventure of the Christmas Pudding",
      "disc": "1/1",
      "date": "2004-12-24",
      "genre": "Mystery",
      "TDOR": "2004-12-24",
      "originalyear": "2004",
      "SCRIPT": "Latn",
      "TMED": "Digital Media",
      "publisher": "BBC Radio 4",
      "DIRECTOR": "Enyd Williams",
      "series-part": "2004-12-24",
      "album_artist": "Agatha Christie",
      "TSO2": "Christie, Agatha",
      "artist-sort": "Christie, Agatha",
      "MusicBrainz Album Status": "official",
      "ARTISTS": "Agatha Christie",
      "MusicBrainz Album Release Country": "GB",
      "series": "Drama",
      "Writer": "Michael Bakewell",
      "MusicBrainz Album Type": "broadcast",
      "MusicBrainz Album Id": "32abda55-8656-42a1-832f-0f384c9a32fd",
      "MusicBrainz Release Group Id": "414bd928-0d55-4694-b3c2-cfffd21b15f1",
      "MusicBrainz Release Track Id": "db485085-4514-4f4d-82fe-808e71b97cbc",
      "MusicBrainz Artist Id": "46a098f3-272d-4bec-9746-67e8ab48ed40",
      "MusicBrainz Album Artist Id": "46a098f3-272d-4bec-9746-67e8ab48ed40",
      "composer": "Annabelle Dowler, Alice Hart, Murray Melvin, Ifan Meredith, John Moffatt, Siân Phillips, Robert Portal, Elizabeth Proud, Angela Sims, Donald Sinden",
      "TMCL": "spoken vocals"
    }
  }
}

Seems to not be picking up the multiple tags, I've tried a number of different separators in Picard but ABS just parse them as a single series. For example, "Drama, Hercule Poirot, Whodunnits"

@tfranken90 commented on GitHub (Mar 19, 2025): ```json { "programs": [], "streams": [ { "index": 0, "codec_name": "mp3", "codec_long_name": "MP3 (MPEG audio layer 3)", "codec_type": "audio", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x0000", "sample_fmt": "fltp", "sample_rate": "44100", "channels": 2, "channel_layout": "stereo", "bits_per_sample": 0, "initial_padding": 0, "r_frame_rate": "0/0", "avg_frame_rate": "0/0", "time_base": "1/14112000", "start_pts": 0, "start_time": "0.000000", "duration_ts": 37403242128, "duration": "2650.456500", "bit_rate": "128000", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0, "non_diegetic": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 } }, { "index": 1, "codec_name": "mjpeg", "codec_long_name": "Motion JPEG", "profile": "Baseline", "codec_type": "video", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x0000", "width": 500, "height": 500, "coded_width": 500, "coded_height": 500, "closed_captions": 0, "film_grain": 0, "has_b_frames": 0, "sample_aspect_ratio": "1:1", "display_aspect_ratio": "1:1", "pix_fmt": "yuvj420p", "level": -99, "color_range": "pc", "color_space": "bt470bg", "chroma_location": "center", "refs": 1, "r_frame_rate": "90000/1", "avg_frame_rate": "0/0", "time_base": "1/90000", "duration_ts": 238541085, "duration": "2650.456500", "bits_per_raw_sample": "8", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 1, "timed_thumbnails": 0, "non_diegetic": 0, "captions": 0, "descriptions": 0, "metadata": 0, "dependent": 0, "still_image": 0 }, "tags": { "comment": "Cover (front)" } } ], "chapters": [], "format": { "filename": "/media/audio/audiodrama/Christie, Agatha/Drama/2004-12-24 The Adventure of the Christmas Pudding (2004-12-24)/01 2004-12-24_ Afternoon Play _The Adventure of the Christmas Pudding'.mp3", "nb_streams": 2, "nb_programs": 0, "format_name": "mp3", "format_long_name": "MP2/3 (MPEG audio layer 2/3)", "start_time": "0.000000", "duration": "2650.456500", "size": "42505773", "bit_rate": "128297", "probe_score": 51, "tags": { "title": "2004-12-24: Afternoon Play \"The Adventure of the Christmas Pudding'", "artist": "Michael Bakewell; Agatha Christie", "track": "1/1", "album": "The Adventure of the Christmas Pudding", "disc": "1/1", "date": "2004-12-24", "genre": "Mystery", "TDOR": "2004-12-24", "originalyear": "2004", "SCRIPT": "Latn", "TMED": "Digital Media", "publisher": "BBC Radio 4", "DIRECTOR": "Enyd Williams", "series-part": "2004-12-24", "album_artist": "Agatha Christie", "TSO2": "Christie, Agatha", "artist-sort": "Christie, Agatha", "MusicBrainz Album Status": "official", "ARTISTS": "Agatha Christie", "MusicBrainz Album Release Country": "GB", "series": "Drama", "Writer": "Michael Bakewell", "MusicBrainz Album Type": "broadcast", "MusicBrainz Album Id": "32abda55-8656-42a1-832f-0f384c9a32fd", "MusicBrainz Release Group Id": "414bd928-0d55-4694-b3c2-cfffd21b15f1", "MusicBrainz Release Track Id": "db485085-4514-4f4d-82fe-808e71b97cbc", "MusicBrainz Artist Id": "46a098f3-272d-4bec-9746-67e8ab48ed40", "MusicBrainz Album Artist Id": "46a098f3-272d-4bec-9746-67e8ab48ed40", "composer": "Annabelle Dowler, Alice Hart, Murray Melvin, Ifan Meredith, John Moffatt, Siân Phillips, Robert Portal, Elizabeth Proud, Angela Sims, Donald Sinden", "TMCL": "spoken vocals" } } } ``` Seems to not be picking up the multiple tags, I've tried a number of different separators in Picard but ABS just parse them as a single series. For example, "Drama, Hercule Poirot, Whodunnits"
Author
Owner

@advplyr commented on GitHub (Mar 19, 2025):

I don't have that software but from the ffprobe output I can see that it is not showing multiple series

@advplyr commented on GitHub (Mar 19, 2025): I don't have that software but from the ffprobe output I can see that it is not showing multiple series
Author
Owner

@tfranken90 commented on GitHub (Mar 20, 2025):

When I set the tag the same way I'm setting the artist tag, I get this relevant line from ffprobe.

"series": "Drama; Hercule Poirot; Whodunnits",

but ABS isn't splitting this into multiple series.

@tfranken90 commented on GitHub (Mar 20, 2025): When I set the tag the same way I'm setting the artist tag, I get this relevant line from ffprobe. `` "series": "Drama; Hercule Poirot; Whodunnits", `` but ABS isn't splitting this into multiple series.
Author
Owner

@nichwall commented on GitHub (Mar 20, 2025):

  "format": {
    ...
    "tags": {
      ...
      "series": "Drama",
      ...
    }
  }
}

Seems to not be picking up the multiple tags, I've tried a number of different separators in Picard but ABS just parse them as a single series. For example, "Drama, Hercule Poirot, Whodunnits"

The series does not show that, it only shows "Drama"

@nichwall commented on GitHub (Mar 20, 2025): > ``` > "format": { > ... > "tags": { > ... > "series": "Drama", > ... > } > } > } > ``` > > Seems to not be picking up the multiple tags, I've tried a number of different separators in Picard but ABS just parse them as a single series. For example, "Drama, Hercule Poirot, Whodunnits" The series does not show that, it only shows "Drama"
Author
Owner

@tfranken90 commented on GitHub (Mar 20, 2025):

Apologies if I was not clear in my second comment, I re-tagged the files using a different method. Now I'm getting this from ffprobe

"series": "Drama; Hercule Poirot; Whodunnits",

but ABS is setting it as a single series called "Drama; Hercule Poirot; Whodunnits"

@tfranken90 commented on GitHub (Mar 20, 2025): Apologies if I was not clear in my second comment, I re-tagged the files using a different method. Now I'm getting this from ffprobe `` "series": "Drama; Hercule Poirot; Whodunnits", `` but ABS is setting it as a single series called "Drama; Hercule Poirot; Whodunnits"
Author
Owner

@github-actions[bot] commented on GitHub (Apr 27, 2025):

Fixed in v2.21.0.

@github-actions[bot] commented on GitHub (Apr 27, 2025): Fixed in [v2.21.0](https://github.com/advplyr/audiobookshelf/releases/tag/v2.21.0).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#2670