[PR #13486] Add Waveform bar api endpoint #13596

Open
opened 2026-02-07 07:15:50 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/13486
Author: @FrenchGithubUser
Created: 2/3/2025
Status: 🔄 Open

Base: masterHead: waveform-bar


📝 Commits (10+)

  • 234eb00 create pcm data from audio file
  • 0eb2a1c changed output file to .dat generated with audiowaveform
  • ea9eb90 using ffprobe instead of audiowaveform (bbc)
  • 4d4a5df dynamic samplerate, using RMS_peak
  • c6421c2 raw value restoration, using item.GetMediaStreams for sample rate, escaped special chars in filename, returning json instead of csv
  • 929e5fa proper metadata manager and db entry, using temp dir for csv file, ffprobe timeout
  • 503fb42 Update Jellyfin.Server.Implementations/AudioWaveform/AudioWaveformManager.cs
  • 0e16294 Update Jellyfin.Server.Implementations/AudioWaveform/AudioWaveformManager.cs
  • 04b15fd Update Jellyfin.Server.Implementations/AudioWaveform/AudioWaveformManager.cs
  • 4512192 small changes

📊 Changes

8 files changed (+268 additions, -10 deletions)

View changed files

📝 CONTRIBUTORS.md (+1 -0)
📝 Jellyfin.Api/Controllers/AudioController.cs (+43 -10)
📝 Jellyfin.Api/Helpers/AudioHelper.cs (+1 -0)
Jellyfin.Data/Entities/AudioWaveformInfo.cs (+29 -0)
Jellyfin.Server.Implementations/AudioWaveform/AudioWaveformManager.cs (+160 -0)
📝 Jellyfin.Server.Implementations/JellyfinDbContext.cs (+5 -0)
📝 Jellyfin.Server/CoreAppHost.cs (+3 -0)
MediaBrowser.Controller/AudioWaveform/IAudioWaveformManager.cs (+26 -0)

📄 Description

Changes
Added an API endpoint Audio/itemId/audiowaveform to generate a .dat file to create audiowaveforms. Following this library's standard : https://github.com/bbc/audiowaveform

This is my first PR and first experience with C#. I tried my best at following guidelines and existing code. Please tell me anything I should change, I don't expect this PR from passing.


🔄 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/13486 **Author:** [@FrenchGithubUser](https://github.com/FrenchGithubUser) **Created:** 2/3/2025 **Status:** 🔄 Open **Base:** `master` ← **Head:** `waveform-bar` --- ### 📝 Commits (10+) - [`234eb00`](https://github.com/jellyfin/jellyfin/commit/234eb00d52931a572e52cef7b60f51c580610cd9) create pcm data from audio file - [`0eb2a1c`](https://github.com/jellyfin/jellyfin/commit/0eb2a1c395b85a74daafda8675c27ddf673fdbcd) changed output file to .dat generated with audiowaveform - [`ea9eb90`](https://github.com/jellyfin/jellyfin/commit/ea9eb90ce2ae9c4f882dc99c2623fd3a15f4f36d) using ffprobe instead of audiowaveform (bbc) - [`4d4a5df`](https://github.com/jellyfin/jellyfin/commit/4d4a5df3831b4afb9f81c8f39f6edc62ef0901a7) dynamic samplerate, using RMS_peak - [`c6421c2`](https://github.com/jellyfin/jellyfin/commit/c6421c26d76e8a9510ed3171d9f50dfa070f6556) raw value restoration, using item.GetMediaStreams for sample rate, escaped special chars in filename, returning json instead of csv - [`929e5fa`](https://github.com/jellyfin/jellyfin/commit/929e5fa0a4177361421281f8255cdd445c9b029c) proper metadata manager and db entry, using temp dir for csv file, ffprobe timeout - [`503fb42`](https://github.com/jellyfin/jellyfin/commit/503fb42438b272de790bf076c9f0dad021846fcf) Update Jellyfin.Server.Implementations/AudioWaveform/AudioWaveformManager.cs - [`0e16294`](https://github.com/jellyfin/jellyfin/commit/0e162941c8e086c89115cf91303cf12f1ca313c7) Update Jellyfin.Server.Implementations/AudioWaveform/AudioWaveformManager.cs - [`04b15fd`](https://github.com/jellyfin/jellyfin/commit/04b15fdfb750766c71c2338add35570caa4ce78a) Update Jellyfin.Server.Implementations/AudioWaveform/AudioWaveformManager.cs - [`4512192`](https://github.com/jellyfin/jellyfin/commit/4512192c32f582e98d8a5284a71a41c4e2af234f) small changes ### 📊 Changes **8 files changed** (+268 additions, -10 deletions) <details> <summary>View changed files</summary> 📝 `CONTRIBUTORS.md` (+1 -0) 📝 `Jellyfin.Api/Controllers/AudioController.cs` (+43 -10) 📝 `Jellyfin.Api/Helpers/AudioHelper.cs` (+1 -0) ➕ `Jellyfin.Data/Entities/AudioWaveformInfo.cs` (+29 -0) ➕ `Jellyfin.Server.Implementations/AudioWaveform/AudioWaveformManager.cs` (+160 -0) 📝 `Jellyfin.Server.Implementations/JellyfinDbContext.cs` (+5 -0) 📝 `Jellyfin.Server/CoreAppHost.cs` (+3 -0) ➕ `MediaBrowser.Controller/AudioWaveform/IAudioWaveformManager.cs` (+26 -0) </details> ### 📄 Description <!-- Ensure your title is short, descriptive, and in the imperative mood (Fix X, Change Y, instead of Fixed X, Changed Y). For a good inspiration of what to write in commit messages and PRs please review https://chris.beams.io/posts/git-commit/ and our documentation. --> **Changes** Added an API endpoint Audio/itemId/audiowaveform to generate a .dat file to create audiowaveforms. Following this library's standard : https://github.com/bbc/audiowaveform This is my first PR and first experience with C#. I tried my best at following guidelines and existing code. Please tell me anything I should change, I don't expect this PR from passing. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-07 07:15:50 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#13596