Skip to content

Feature: audiobook/podcast skip controls#1063

Open
andykelk wants to merge 1 commit into
music-assistant:mainfrom
andykelk:feature/audiobook-podcast-skip-controls
Open

Feature: audiobook/podcast skip controls#1063
andykelk wants to merge 1 commit into
music-assistant:mainfrom
andykelk:feature/audiobook-podcast-skip-controls

Conversation

@andykelk

@andykelk andykelk commented Aug 3, 2025

Copy link
Copy Markdown

Adds configurable skip controls for audiobooks and podcasts with user-selectable skip amounts of 10, 15, 30, or 60 seconds.

Features

  • Forward and backward skip buttons appear only when playing audiobooks or podcasts
  • Users can choose skip duration (10/15/30/60 seconds) in Settings > Audiobooks & Podcasts
  • Rapid clicking accumulates skip time instead of jumping to the same position
  • Works across mini player, fullscreen player, and browser media session controls
  • Automatically detects audiobooks, podcasts, and podcast episodes

Implementation Details

  • Skip buttons positioned between previous/next and play controls
  • Generic fast-forward/rewind icons
  • Shared SkipControlManager handles throttling logic similar to existing media session controls
  • Browser media session uses configured amounts for keyboard/headphone controls
  • Falls back to 10 seconds for music content to maintain existing behaviour

Test Plan

  • Skip buttons appear only for audiobooks and podcasts
  • Setting configurable in frontend settings under new "Audiobooks & Podcasts" category
  • Skip amount changes are applied immediately without page refresh
  • Rapid clicking accumulates skip time correctly
  • Browser media session (keyboard/headphone controls) uses configured amounts
  • No skip buttons shown for regular music content

Fixes https://github.com/orgs/music-assistant/discussions/3745

@marcelveldt

Copy link
Copy Markdown
Member

Actually, server-side we also support skipping (for all media items, so also for tracks) - we simply never added it to the frontend. So if you prefer to use that, this would be the syntax:

command: "player_queues/skip"
parameters: {
  queue_id: string,
  seconds: number
}

seconds: number of seconds to skip in track. Use negative value to skip back.

@tsipinakis

Copy link
Copy Markdown

FYI I've patched the build errors: https://github.com/tsipinakis/mass-frontend/tree/nikos if you want to pull them

@OzGav

OzGav commented Aug 28, 2025

Copy link
Copy Markdown
Contributor

@andykelk If you can fix the lint errors this can be progressed

@andykelk andykelk force-pushed the feature/audiobook-podcast-skip-controls branch 2 times, most recently from f7f6725 to ab08b78 Compare February 20, 2026 02:44
Adds skip forward/backward buttons to the player controls and fullscreen
view when the current media is an audiobook or podcast. The skip amount
is configurable via frontend settings (default 30s).

The buttons use the server-side player_queues/skip command, which also
works for tracks. The browser media session seek handlers use the same
configurable amount.
@andykelk andykelk force-pushed the feature/audiobook-podcast-skip-controls branch from ab08b78 to 2b55541 Compare February 20, 2026 02:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants