[PR #6358] [MERGED] Enable people for audio files and add music probing test #10751

Closed
opened 2025-12-22 08:18:07 +01:00 by backuprepo · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/6358
Author: @heyhippari
Created: 7/27/2021
Status: Merged
Merged: 9/3/2021
Merged by: @Bond-009

Base: masterHead: audio-people


📝 Commits (8)

  • 3300d2d Enable people for audio files
  • 7e71c25 Add test for audio file ffprobe normalization
  • 24083d2 Address comments
  • f35a527 Add performers to the ffprobe normalization for audio
  • c9b1cd1 Add some new music-related person types and parse from ffprobe
  • 8594ee7 Fix documentation for lyricist and arranger
  • d82c2e4 Address comments
  • 7f52cda Make performer regex static

📊 Changes

5 files changed (+265 additions, -13 deletions)

View changed files

📝 MediaBrowser.Controller/Entities/Audio/Audio.cs (+1 -1)
📝 MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs (+56 -2)
📝 MediaBrowser.Model/Entities/PersonType.cs (+30 -10)
📝 tests/Jellyfin.MediaEncoding.Tests/Probing/ProbeResultNormalizerTests.cs (+34 -0)
tests/Jellyfin.MediaEncoding.Tests/Test Data/Probing/music_metadata.json (+144 -0)

📄 Description

Companion PR on jf-web: jellyfin/jellyfin-web#2801

Changes

Enables the SupportsPeople flag for Audio entities. Currently, we parse and normalize composers, lyricists and other info from the FFProbe results, but they get thrown out by the FFProbeAudioInfo provider due to that flag being set to false.

image

It's not shown in jf-web or other clients currently, but this will allow clients to show more infos on the tracks, and providers to be improved.

This also adds a test for music parsing, so we can ensure all the audio-specific stuff the FFProbe normalizer does works.

Also added are a bunch of new PersonType, meant to cover some of the tags we miss currently in audio files: Arranger, Engineer, Mixer and Remixer.

Finally, it adds performer parsing to the ffprobe normalization performed on audio files.

image

It works identically to genres and composers, except it retrieves the role using Regex (The "standard" way performers are set is using Full Name (role). So we match both the name and the role, then capitalize the role based on the current culture, for display purposes).

Issues


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jellyfin/jellyfin/pull/6358 **Author:** [@heyhippari](https://github.com/heyhippari) **Created:** 7/27/2021 **Status:** ✅ Merged **Merged:** 9/3/2021 **Merged by:** [@Bond-009](https://github.com/Bond-009) **Base:** `master` ← **Head:** `audio-people` --- ### 📝 Commits (8) - [`3300d2d`](https://github.com/jellyfin/jellyfin/commit/3300d2d7d3086b84e0158c8e507b2412d54ebe04) Enable people for audio files - [`7e71c25`](https://github.com/jellyfin/jellyfin/commit/7e71c25059d373818f228cc524ac4d68f1ea0602) Add test for audio file ffprobe normalization - [`24083d2`](https://github.com/jellyfin/jellyfin/commit/24083d2e38c17e005c536339d555355b9155485f) Address comments - [`f35a527`](https://github.com/jellyfin/jellyfin/commit/f35a527608fb3f6efde3f76042e0e701768eb3f2) Add performers to the ffprobe normalization for audio - [`c9b1cd1`](https://github.com/jellyfin/jellyfin/commit/c9b1cd1d8cfa3764eff3dfe97baac10ce229d2e9) Add some new music-related person types and parse from ffprobe - [`8594ee7`](https://github.com/jellyfin/jellyfin/commit/8594ee7a2275403d0569529cd1e1237e10cc7d77) Fix documentation for lyricist and arranger - [`d82c2e4`](https://github.com/jellyfin/jellyfin/commit/d82c2e423766566883be850d60e94cc36656f0e8) Address comments - [`7f52cda`](https://github.com/jellyfin/jellyfin/commit/7f52cda03c9731fcbd57fd8c9ed8806c6965d054) Make performer regex static ### 📊 Changes **5 files changed** (+265 additions, -13 deletions) <details> <summary>View changed files</summary> 📝 `MediaBrowser.Controller/Entities/Audio/Audio.cs` (+1 -1) 📝 `MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs` (+56 -2) 📝 `MediaBrowser.Model/Entities/PersonType.cs` (+30 -10) 📝 `tests/Jellyfin.MediaEncoding.Tests/Probing/ProbeResultNormalizerTests.cs` (+34 -0) ➕ `tests/Jellyfin.MediaEncoding.Tests/Test Data/Probing/music_metadata.json` (+144 -0) </details> ### 📄 Description **Companion PR on jf-web:** jellyfin/jellyfin-web#2801 **Changes** Enables the SupportsPeople flag for Audio entities. Currently, we parse and normalize composers, lyricists and other info from the FFProbe results, but they get thrown out by the FFProbeAudioInfo provider due to that flag being set to false. ![image](https://user-images.githubusercontent.com/19396809/127150702-cc993c61-dc6a-4961-93c8-8ee3d081a642.png) It's not shown in jf-web or other clients currently, but this will allow clients to show more infos on the tracks, and providers to be improved. This also adds a test for music parsing, so we can ensure all the audio-specific stuff the FFProbe normalizer does works. Also added are a bunch of new `PersonType`, meant to cover some of the tags we miss currently in audio files: Arranger, Engineer, Mixer and Remixer. Finally, it adds performer parsing to the ffprobe normalization performed on audio files. ![image](https://user-images.githubusercontent.com/19396809/127179723-f444c11c-721d-4501-9eeb-95fddc61edae.png) It works identically to genres and composers, except it retrieves the role using Regex (The "standard" way performers are set is using `Full Name (role)`. So we match both the name and the role, then capitalize the role based on the current culture, for display purposes). **Issues** <!-- Tag any issues that this PR solves here. ex. Fixes # --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
backuprepo 2025-12-22 08:18:08 +01:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: starred/jellyfin#10751
No description provided.