Skip to content

Conversation

some-git-user
Copy link

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-08-08.16-34-21.mp4

Testing

  • Open any video (prefer a podcast with silent or mute parts between conversations).
  • Toggle the function via the red "Skip Silence" gauge Icon Button located in the Watch Video Info area.
  • Watch the player "enable" notification popup.
  • Watch/hear the player increasing playback speed between silent/mute audio parts.
  • Toggle the function again, watch the player "disable" notification popup and speed fallback to default.

Desktop

  • OS: debian
  • OS Version: 12
  • FreeTube version: v0.23.5 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
Copy link
Member

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

Choose a reason for hiding this comment

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

  • Please move the icon to the left of the autoplay icon
  • It should remember its state in the watch session. Examples -> #5903 #6449
  • It probably also should receive a toggle in the Player settings called Enable [name of the feature] by Default

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
2 participants