Skip to content

Feature: Silence skip#7797

Open
some-git-user wants to merge 58 commits intoFreeTubeApp:developmentfrom
some-git-user:feature/skip-silence
Open

Feature: Silence skip#7797
some-git-user wants to merge 58 commits intoFreeTubeApp:developmentfrom
some-git-user:feature/skip-silence

Conversation

@some-git-user
Copy link

@some-git-user some-git-user commented Aug 8, 2025

Pull Request Type

  • Bugfix
  • Feature Implementation
  • Documentation
  • Other

Related issue

closes #1766

Description

This PR implements a simple silence skip logic, to dynamically determine silent video parts, related to the individual max volume of the audio source.

Screenshots

2025-10-14.21-02-12.1.mp4

Testing

  • Open any video (prefer a podcast with silent or mute parts between conversations).
  • Toggle the function via the overflow menu Button.
  • Watch/hear the player increasing playback speed to 3x between silent/mute audio parts and decreasing to the previous speed when audio is detected.
  • Toggle the function again to deactivate and fallback to the previous speed.
  • When the feature is enabled and you change the speed higher then 3x, the feature will deactivate itself.

Desktop

  • OS: debian
  • OS Version: 13
  • FreeTube version: v0.23.13 Beta

Additional context

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) August 8, 2025 21:10
@github-actions github-actions bot added the PR: waiting for review For PRs that are complete, tested, and ready for review label Aug 8, 2025
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove all the locale files. Only keep en-us

@efb4f5ff-1298-471a-8973-3d47447115dc efb4f5ff-1298-471a-8973-3d47447115dc added PR: changes requested and removed PR: waiting for review For PRs that are complete, tested, and ready for review labels Aug 9, 2025
auto-merge was automatically disabled August 9, 2025 07:46

Head branch was pushed to by a user without write access

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) August 9, 2025 07:46
auto-merge was automatically disabled August 9, 2025 07:53

Head branch was pushed to by a user without write access

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) August 9, 2025 07:53
auto-merge was automatically disabled August 9, 2025 08:00

Head branch was pushed to by a user without write access

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) August 9, 2025 08:00
@efb4f5ff-1298-471a-8973-3d47447115dc

Im a bit confused by this skip rate. Please elaborate why you chose for 2.5x instead of e.g. 10x

Lets say the ending of a certain video is 60sec it will take 24sec to skip the silence. Thats way too long imo.

Why not detect when there is no audio and detect when audio is playing again and instantly skip towards that timestamp instead of relying on playback rate to handle this

@some-git-user
Copy link
Author

Im a bit confused by this skip rate. Please elaborate why you chose for 2.5x instead of e.g. 10x

Lets say the ending of a certain video is 60sec it will take 24sec to skip the silence. Thats way too long imo.

Why not detect when there is no audio and detect when audio is playing again and instantly skip towards that timestamp instead of relying on playback rate to handle this
the

The main goal of this feature is to skip (accelerate) silence between conversations, or other silent parts, not to fast forward to the end of a video.
I tried different speed steps with multiple videos and 2.5x was the best one in my tests, since faster steps could also "cut off" the beginning of the next non silent part.

I'm not sure how to "detect when there is no audio and detect when audio is playing again and instantly skip towards that timestamp" .
Maybe I'm wrong here, but to know this you must buffer and analyze the whole video before the playback start, so the code knows the parts with no audio.
I also tried to create a little UI, to let the user make individual changes for every video, to match the needed audio threshold, but I'm not familiar with Vue and the lack of Typescript made it even harder for me to get into this project.

@efb4f5ff-1298-471a-8973-3d47447115dc efb4f5ff-1298-471a-8973-3d47447115dc added PR: waiting for review For PRs that are complete, tested, and ready for review and removed PR: changes requested labels Aug 11, 2025
@efb4f5ff-1298-471a-8973-3d47447115dc

This implementation works really well, especially considering that our player is the limiting factor in this case.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to be a button for this inside the player instead of outside the player

@efb4f5ff-1298-471a-8973-3d47447115dc efb4f5ff-1298-471a-8973-3d47447115dc added PR: changes requested and removed PR: waiting for review For PRs that are complete, tested, and ready for review labels Aug 12, 2025
auto-merge was automatically disabled August 13, 2025 21:37

Head branch was pushed to by a user without write access

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) August 13, 2025 21:38
@efb4f5ff-1298-471a-8973-3d47447115dc

@some-git-user i prefer to not make this feature configurable. I prefer to go with good defaults instead of creating yet another slider/toggle in the settings

@github-actions
Copy link
Contributor

github-actions bot commented Dec 3, 2025

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions
Copy link
Contributor

This PR is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 14 days.

@efb4f5ff-1298-471a-8973-3d47447115dc

@some-git-user any issues you're facing we can help with?

auto-merge was automatically disabled December 25, 2025 19:59

Head branch was pushed to by a user without write access

@github-actions
Copy link
Contributor

Conflicts have been resolved. A maintainer will review the pull request shortly.

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) December 25, 2025 19:59
@some-git-user
Copy link
Author

@efb4f5ff-1298-471a-8973-3d47447115dc I hadn't much time this month. I rechecked your comment about the "good defaults". Currently the playback speeds are related to the "Default Playback Rate" and "Max Video Playback Rate" settings. Removing this relation and set the skip silence to e.g. 3x will break the logic when the "Default Playback Rate" is set to like 4x speed. This would lead again to the issue, that the skip silence speed could be slower than the regular "Default Playback Rate". Maybe I'm wrong, but letting the user set the speeds, like it's in the current implementation, would be a good default for most users?

@efb4f5ff-1298-471a-8973-3d47447115dc
Copy link
Member

efb4f5ff-1298-471a-8973-3d47447115dc commented Jan 7, 2026

@some-git-user sorry for the delay.

After internal discussion we decided that its best to go for a good default instead of making it configurable. So what it should do is apply that number when there is a silent part and also only apply it if that speed is above the current speed.

Reasons for this decision are:

  • We want to minimize overskipping as much as possible and prevent any performance issues, as higher playback rates demand more bandwidth and processing power.
  • I also think that if your current speed is set to something extreme, like 8x, you're clearly prioritizing speed over skipping a few silent parts. In such "mad man" cases, I'd argue that pushing it to 10x results in diminishing returns.

3x felt good but maybe we can fiddle around with it some more to see if a slightly higher speed is possible

@github-actions
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 1, 2026

This PR is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 14 days.

auto-merge was automatically disabled February 1, 2026 23:06

Head branch was pushed to by a user without write access

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) February 1, 2026 23:06
@github-actions
Copy link
Contributor

github-actions bot commented Feb 1, 2026

Conflicts have been resolved. A maintainer will review the pull request shortly.

@some-git-user
Copy link
Author

@efb4f5ff-1298-471a-8973-3d47447115dc I updated the test instructions to align with the new behavior

@efb4f5ff-1298-471a-8973-3d47447115dc

PR LGTM but i need some feedback from @absidue and @PikachuEXE to be sure about the following points

  • What do we think about the default skip speed? See previous reasoning for this speed Feature: Silence skip #7797 (comment)
  • The Skip Silence button will be set to off when the user goes above 3x. Would it make sense to hide it in this case and show when speed is below 3x?
  • Should Skip by Default toggle in settings be locked/visually greyed out when default playback speed is above 3x?

@PikachuEXE
Copy link
Member

  1. 3x sounds fine unless proven otherwise
  2. Just hide it
  3. Yes and not sure if we can show users why it's locked

@github-actions github-actions bot removed the PR: stale label Feb 5, 2026
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.

[Feature Request] Skip the silence in media playback

4 participants