Metadaten für TV-Serien

Ich mag MP3Tag wirklich sehr und benutze es auch, um MP4-Videodateien (meist Serienfolgen aus den ÖR-Mediatheken) zu taggen. Das dauert beim ersten Erstellen recht lange (mglw. wäre eine 64bit-Version schneller), aber das Aktualisieren ist schön schnell. Ich möchte dafür sorgen, dass insbesondere Kodi, iTunes und der Windows Explorer gut mit diesen Tags klar kommen. Dazu habe ich einige Verbesserungsvorschläge:

Manche Felder haben wie GENRE eine geschlossene oder offene Liste möglicher Werte. MP3Tag sollte diese kennen und ein entsprechendes Dropdown-Feld bzw. bei Booleschen Werte eine Checkbox anbieten. Das betrifft z.B. LANGUAGE (ISO 639, lokalisierbar), ITUNESMEDIATYPE (stik, s.u.), ITUNESHDVIDEO (hdvd, s.u.).

Es sollte einfach möglich sein, zwei Feldern denselben Wert zuzuweisen oder ein einziges Eingabefeld zu verwenden, das abhängig vom Medientyp (v.a. Audio vs. Video) das entsprechende Feld füllt, bspw. DISCNUMBER = TVSEASON (tvsn), TRACK = TVEPISODE (tves) und evtl. ALBUM = TVSHOW (tvsh), ALBUMARTIST = TVNETWORK (tvnn).

stik Values

  1. Home Video? (was: Movie)
  2. Normal / Music
    11. Booklet
    12. ?
    13. ?
    14. Ringtone
  3. Audiobook
    21. Podcast? → pcst
    22. ?
    23. iTunes U? → itnu
  4. ?
  5. ?
  6. (Whacked Bookmark?)
  7. Music Video
  8. ?
  9. ?
  10. Movie (was: Short Film?)
  11. TV Show

hdvd Values

  1. SD
  2. HD/720p (2?)
  3. FHD/1080p (4?)
  4. (UHD/4K/2160p)?

Ob eine Datei neu geschrieben werden muss (dauert lange) oder nicht (geht schneller) hängt vom schon vorhandenen Padding ab. Wenn noch gar kein Platz für Tags geschaffen wurde, muss die Datei neu geschrieben werden. Da ist dann das Nadelöhr der Weg zum Massenspeicher - und der wird durch 64bit-Versionen auch nicht schneller.
Zum Thema vordefinierte Werte in Listen gibt es schon so viele Threads ...
z.B. diesen hier:


Der immer wieder genannte Ausweg:
Bau dir einen Satz Aktionen vom Typ "Tag-Feld formatieren", die dann die gewünschten Werte in die Felder schreiben.
Man kann diese Aktionen auch gruppieren, wie hier beschrieben:

Vordefinierte, selbstdefinierte oder automatisch gemerkte Werte für bestimmte Felder werden tatsächlich häufiger gewünscht.

Mir geht es nicht darum, immer denselben Wert einzutragen, was durch Aktionen zu lösen wäre, sondern darum, Tippfehler zu vermeiden und mir vorher unbekannte korrekte Werte auffindbar zu machen sowie um eine Vereinheitlichung.

... schließlich sind die (bzw. einige) Werte für stik oder TCON/gnre nicht beliebig, sondern numerische Codes mit (relativ) fester Bedeutung, die prinzipiell auch übersetzbar ist. Es wäre schön, wenn man (sofern man weiß, was man tut) mit MP3Tag auch undokumentierte, numerische Werte ins Tag schreiben könnte und wenn auch alternative sowie lokalisierte Eingaben auf die korrekten Werte gemappt werden würden:

Stored Displayed Accepted Input Proposed Alternative Input
h00 Unknown anything unrecognized 0
h01 Normal Normal 1, Music; dt.: Musik
h02 Audiobook Audiobook 2, (20), Audio, Book, Audio Book, Audioplay, Radioplay; dt.: Hörbuch, Hörspiel, Buch
h03 3
h04 4
h05 (Whacked Bookmark?) none 5, (50), Whacked Bookmark, Whacked, Bookmark; dt.: Lesezeichen
h06 Music Video Music Video 6, (60), Video; dt: Musikvideo
h07 7
h08 8
h09 Movie Movie 9, (90), Short Film, Film; dt: Kinofilm, Kurzfilm
h0A TV Show TV Show 10, TV, Television; dt.: Fernsehserie, Fernsehsendung, Fernsehen
h0B Booklet Booklet 11
h0C 12
h0D 13
h0E Ringtone Ringtone (undocumented) 14, Ring Tone, Alarm, Alarm Sound; dt.: Klingelton
h0F 15
h15 (Podcast?) none 21, Podcast
h17 iTunes U iTunes U (undocumented) 23, U, University, Uni, Lecture; dt: Vorlesung, Vortrag

iTunes Search

iTunes Search API: https://itunes.apple.com/search?term={<search string>}&country={us|...}&media={Media Type}&entity={Entities}&attribute={Attributes}

stik Media Type Entities Attributes
9 movie movieArtist, movie actorTerm, genreIndex, artistTerm, shortFilmTerm, producerTerm, ratingTerm, directorTerm, releaseYearTerm, featureFilmTerm, movieArtistTerm, movieTerm, ratingIndex, descriptionTerm
21 podcast podcastAuthor, podcast titleTerm, languageTerm, authorTerm, genreIndex, artistTerm, ratingIndex, keywordsTerm, descriptionTerm
1 music musicArtist, musicTrack, album, musicVideo, mix, song mixTerm, genreIndex, artistTerm, composerTerm, albumTerm, ratingIndex, songTerm
6 musicVideo musicArtist, musicVideo genreIndex, artistTerm, albumTerm, ratingIndex, songTerm
2 audiobook audiobookAuthor, audiobook titleTerm, authorTerm, genreIndex, ratingIndex
9? shortFilm shortFilmArtist, shortFilm genreIndex, artistTerm, shortFilmTerm, ratingIndex, descriptionTerm
10 tvShow tvEpisode, tvSeason genreIndex, tvEpisodeTerm, showTerm, tvSeasonTerm, ratingIndex, descriptionTerm
N/A software software, iPadSoftware, macSoftware softwareDeveloper
11? ebook ebook
(0) all movie, album, allArtist, podcast, musicVideo, mix, audiobook, tvSeason, allTrack actorTerm, languageTerm, allArtistTerm, tvEpisodeTerm, shortFilmTerm, directorTerm, releaseYearTerm, titleTerm, featureFilmTerm, ratingIndex, keywordsTerm, descriptionTerm, authorTerm, genreIndex, mixTerm, allTrackTerm, artistTerm, composerTerm, tvSeasonTerm, producerTerm, ratingTerm, songTerm, movieArtistTerm, showTerm, movieTerm, albumTerm

Please note that the musicTrack entity can include both songs and music videos in the results.

SiriKit

Intents: INMediaItem.type : INMediaItemType

enum INMediaItemType : Int = {
  // General
  case unknown         =  0
  case genre           =  4
  case station         = 17
  // Music
  case song            =  1
  case album           =  2
  case artist          =  3
  case playlist        =  5
  case musicStation    =  9
  case musicVideo      = 14
  case radioStation    = 16
  case music           = 18
  // TV and Movie
  case movie           = 11
  case tvShow          = 12
  case tvShowEpisode   = 13
  // Podcast
  case podcastShow     =  6
  case podcastEpisode  =  7
  case podcastPlaylist =  8
  case podcastStation  = 15
  // Audiobook
  case audioBook       = 10
}