Repository navigation
Phase 2: streaming audio, speed, skips and auto-advance - #7
Merged
Merged
Conversation
Speed and intro/outro skip from get_play_episode_details, detected silence and ad ranges from episode_skip_segments, the per-podcast trim-silence setting, and the /stream URL for server-side copies. Episode audio gets its own HTTP client with no overall timeout and no compression.
Episodes now stream: a range reader downloads into a temp file and restarts at the seek point when a read needs bytes far from the download, so playback starts in a second or two and a seek anywhere costs one request. Servers that ignore ranges (including PinePods' own /stream today) fall back to a sequential download. Decoding moves to a per-track thread that keeps about a second of audio queued, so the device callback never waits on the network. That thread also applies pitch-preserving speed (Signalsmith Stretch) and jumps over server-detected ads and silence, and over each podcast's intro and outro. The controller picks the playback URL by the mobile app's rule, applies the podcast's speed and intro skip from the start, reopens dropped audio where the listener was, and plays the next queued episode when one ends.
[ and ] change speed, = resets it, and t toggles the podcast's trim-silence setting. The player and micro-player show the speed, buffering and reconnect states, how many ads and silences will be skipped, and a short note after each jump.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Episodes now stream with range requests instead of downloading first, with pitch-preserving speed, server-detected ad/silence skipping, intro/outro skip, reconnects after network drops, and the next queued episode playing when one ends.