Uploaded image for project: 'Picard'
  1. Picard
  2. PICARD-1589

Support language for ID3 COMM tags with `comment:{language}:{description}` syntax (enables support for MediaMonkey's Songs-DB_Custom tags)

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Normal Normal
    • 2.3.0b1
    • 2.1.3
    • Tags & Metadata
    • None

      ID3 allows saving a language for comment tags. Currently Picard is hard coded to always write "eng", and most of the files seen in the wild seem to default to "eng".

      An exception is MediaMonkey, which allows the user to write "custom" tags. Those custom tags get stored to COMM frames with a description on "Songs-DB_Custom1", "Songs-DB_Custom2" etc. and language set to "XXX".

      Picard not supporting this currently has two affects:

      • Trying to create such a tag with Picard fails. $set(comment:Songs-DB_Custom1,test) will write a COMM tag with proper description, but language set to "eng".
      • Loading such a file will basically duplicate the tag. The existing tag with lang=XXX stays and a new tag with lang=eng gets written.

      See also https://community.metabrainz.org/t/help-with-script-to-send-release-type-to-mediamonkeys-custom-tag/442064

          [PICARD-1589] Support language for ID3 COMM tags with `comment:{language}:{description}` syntax (enables support for MediaMonkey's Songs-DB_Custom tags)

          Philipp Wolfer added a comment - https://github.com/metabrainz/picard/pull/1437

          We could start supporting something like "comment:XXX:Songs-DB_Custom1" to explicitly set the language part. For ID3 this would be implemented to read and write the language part. For backwards compatibility COMM frames with lang=eng would be read without the language (just comment:thedescription).

          Other tagging formats must support this syntax as well, but would just drop the language part. It would be recommended to use this syntax only for ID3.

          Alternatively we could just treat the MediaMonkey tags special, so store every comment with a description starting with "Songs-DB_" with language "XXX".

          Philipp Wolfer added a comment - We could start supporting something like "comment:XXX:Songs-DB_Custom1" to explicitly set the language part. For ID3 this would be implemented to read and write the language part. For backwards compatibility COMM frames with lang=eng would be read without the language (just comment:thedescription). Other tagging formats must support this syntax as well, but would just drop the language part. It would be recommended to use this syntax only for ID3. Alternatively we could just treat the MediaMonkey tags special, so store every comment with a description starting with "Songs-DB_" with language "XXX".

            outsidecontext Philipp Wolfer
            outsidecontext Philipp Wolfer
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:

                Version Package
                2.3.0b1