Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SponsorBlock not working for outros/end of videos (iOS) #163

Closed
DEFCON001 opened this issue Jun 12, 2022 · 5 comments
Closed

SponsorBlock not working for outros/end of videos (iOS) #163

DEFCON001 opened this issue Jun 12, 2022 · 5 comments
Labels
bug Something isn't working

Comments

@DEFCON001
Copy link

DEFCON001 commented Jun 12, 2022

SponsorBlock doesn't seem to skip outros, they appear in the seek bar (as coloured red), but aren't skipped. I think this might actually have to do with SponsorBlock not skipping sections that go to the end of the video in general, rather than the "outro" subset being the issue, but I haven't found a test case that has an ending that isn't an "outro" yet (or an outro that isn't an ending).
However SponsorBlock works fine for skipping sections that aren't at the end of videos.

(Note: this doesn't seem to effect intros/skipped segments that start at the beginning of videos, so this seems to be an issue just for endings).

Also, this is a separate issue to #162 which was resolved.

@DEFCON001
Copy link
Author

The guard section in this submodule from "yattee/main/Model/Player/PlayerSponsorBlock.swift" might be related to the issue, maybe one of the times is rounded at some point or something. Checking the logger.error() output will help explain if this is the cause, and possibly what exactly is happening. Is there any way to access said logged output on iOS with the TestFlight version of the app installed, or will we need to use macOS to debug this issue (I don't have access to macOS so this would require someone else to do so)?

    private func skip(_ segment: Segment, at time: CMTime) {
        guard segment.endTime.seconds <= playerItemDuration?.seconds ?? .infinity else {
            logger.error(
                "segment end time is: \(segment.end) when player item duration is: \(playerItemDuration?.seconds ?? .infinity)"
            )
            return
        }

@arekf
Copy link
Contributor

arekf commented Jun 14, 2022

Are you able to provide video where this can be reproduced because I can't?

@DEFCON001
Copy link
Author

DEFCON001 commented Jun 14, 2022

Sure, for example the outro at the end of this video appears red in the seek bar but does not skip:
https://www.youtube.com/watch?v=VCRkMsOFjI8
(Should skip from around 8:30->10:31, ie: the end of the video)

@arekf arekf added the bug Something isn't working label Jun 14, 2022
arekf added a commit that referenced this issue Jun 14, 2022
@arekf
Copy link
Contributor

arekf commented Jun 14, 2022

Updated builds have fixed and improved outros skipping - it should close video/skip to next without seeking for the end of video first

@DEFCON001
Copy link
Author

Thank-you, that fixed it, amazing work like always. Closing issue.

arekf added a commit that referenced this issue Jun 15, 2022
arekf added a commit that referenced this issue Jul 5, 2022
arekf added a commit that referenced this issue Jul 11, 2022
arekf added a commit that referenced this issue Aug 5, 2022
arekf added a commit that referenced this issue Aug 17, 2022
arekf added a commit that referenced this issue Oct 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants