Commercial skipping - is there a way to auto skip commercials during playback?

I recently started using Channels DVR and am enjoying it so far… nice work!

I use the Apple TV app for playback, and I like how the timeline upon playback highlights where the commercials are. I was expecting though that when playback reaches a commercial, that it would automatically skip over the commercial, but instead it kept playing into the commercial and I had to manually skip move the timeline to skip the commercial.

Is there a way to auto skip commercials during playback? (and/or a way to add an option in case some people don’t want to auto skip)?

You can double click the remote to go to the end of the commercial mark but I agree that it would be nice to somehow automatically skip. It would also be nice to have the commercial marking run concurrently with recording so that commercials could be skipped watching buffered live tv.

Even with that approach, the double click only works when you’re playing within the commercial break (if you double click outside of a commercial break it just skips ahead 30 seconds or so). So yes, hoping there’s a way to enhance this to allow auto skipping without any manual intervention.

1 Like

Harmony remotes have the ability to have dedicated skip buttons for the chapter marks.

Letting you double click anytime in the timeline to get to a chapter mark with the Apple remote would prevent you from quickly skipping ahead or in reverse 30s/7s respectively multiple times. That ends up being a really bad experience. So the commercial skip gesture only works inside the commercial blocks.

Makes sense, thanks. I see you’re a channels dev… is my original ask to have auto skip even possible? If so, would really like to request adding a setting that people can turn on/off that will auto skip every time it reaches a commercial.

Latest official response I believe: Commercial free back 2 back playback

Thanks. I posted the same response in that thread which is below:
I still think there should be an option. Comskip for me gets detection 95%+ correct, so I’d rather solve for the 95% use case vs. constrain due to the 5% use case (maybe that’s just me though). Thinking back to the days of when I used to use XBMC, it had a similar feature, and if/when comskip didn’t get the detection perfect, I could easily use the remote to navigate backwards to keep watching within the “break” (again as an exception case, not the norm).

Just use MceBuddy to covert the recordings after they finish. It automatically removes the commercials and can convert the file to be be a smaller size. You can search these forums for the right settings. It’s only available on windows though.

Circling back on this.

@tmm1 - hope you had some nice time off! Any perspective on this request? This would be a huge user experience help for me (and maybe others) if there’s a setting to allow auto skipping (and if folks view it as more disruptive vs. not, then default it to off).

Sorry but auto-skip is unlikely to happen. Just see what happened to ReplayTV when they tried (https://en.m.wikipedia.org/wiki/ReplayTV#Legal_battle)

I agree it would be nice to have an option to automatically skip commercials. Of course the default should be off. But there have been many times I have wished I could enable auto-skip for a time.

Perhaps it would even be helpful to make it time based, e.g. “Enable auto-skip for: 30min, 1hr, 2hr”, etc; or maybe even per recording, e.g. “Enable auto-skip for just this recording”. These options could be made available in the top pull down banner menu.

Ahhh, didn’t think about the legal ramifications, but that makes sense. Oh well :disappointed:

Yikes, had no clue a feature like that was so controversial. Bummer…

Picking this thread back up again.

@tmm1 - I just saw the Tablo announcement below where they'll be implementing true auto skip (no button press required). Not sure who they are addressing the legal concerns, but seems like someone is figuring out a way to do this. More FYI in case you didn't see it (plus in case there's a creative way to get around the legal concern).

Tablo and Plex are both doing auto commercial skip, and SageTV has for over a decade. Channels DVR needs to implement this to stay competitive.

As for the ReplayTV legal argument, that's more an excuse for not doing it than a valid reason. First of all, there was never ruling against SonicBlue/ReplayTV. Secondly, the main issue was the sharing of copyrighted content between users, which is pretty clearly a copyright issue. Future legal rulings make it clear that copyright law does not apply to personal use commercial watching/skipping.

You should instead reference the Dish AutoHop case. The 9th Circuit Court ruling upheld the trial judge’s decision NOT to grant a preliminary injunction against Dish AutoHop. One of the many reasons stated by the 9th was that the broadcasters DO NOT OWN the copyrights to the commercials. It was an interesting ruling because it made it pretty clear the broadcasters were going to lose. The 9th cited, and subsequently undercut, every point the broadcasters put forward. Eventually, all the broadcasters dropped their suits against Dish and moved on.

See this comment on ZatzNotFunny for more details on the legal aspects of why this auto-commercial skipping isn't an issue for in-the-home OTA personal use recordings.

Part of the reason this won't work is that live TV and the timeshift buffer is on the client, which is where comskip would need to run. The CPU of many client devices is not quite up to the task of live commercial flagging. I imagine this is another aspect of why this isn't implemented, but probably not the primary. (Also, although comskip can flag commercials in a live feed, the quality still isn't 100%. And, if you're skipping commercials in live TV, how does that even work? Blank the screen when a commercial airs? I don't get it, and it doesn't make sense in a live setting.)

For commercial detection of in-process recordings, you don't skip commercials when you are on caught-up and watching real time live TV. The commercial skips would only happen when you are, for example, 15 minutes behind the real time recording. When a commercial is encountered, it is skipped, and you are then 13 minutes behind real time. This works until you're caught up with real time. So it's important to differentiate that this would be comskip for for in-process recordings, and not comskip for real-time live TV.

Comskip runs on server against the recorded/source file, not against the partial buffer on the client side. To do this for an in-process recording, the server runs comskip at a predefined interval (for example, every 5 minutes) against the in-process recording file (either the entire file, or just a later portion of it.) Comskip then continually updates the corresponding .edl file with the latest commercial times. The only thing required by the client is to re-read the corresponding .edl file for updated commercial locations, or the server could provide a push of that latest data to the client. This is a trivial amount of processing on the client side, .edl files are text files with only a few bytes of data specifying the start time and end time of commercials (in seconds).

SageTV has been doing this exact implementation of in-process-recording commercial detection for over 10 years. There is no technical limitation preventing Channels from implementing this same methodology.

So you want comskip to run concurrently with a recording, not to operate as a post-processing command. I can understand this, but if you have several concurrent recordings, this will quickly overload a processor.

If you truly want SageTV's featureset, then perhaps the software you are looking for is SageTV. Commercial detection is an optional step, and therefore belongs in the post-processing stage. If you are watching a recording-in-progress, then you can pauseon the commercial, go do something else, then when you return fastforward to the end of the break. Personally I don't see this coming to Channels any time soon.

Modern CPUs are extremely capable, but if concurrent in-process commercial detection is a concern, it could be limited to only run against 1 recording at a time, and perhaps only for the one that is actually being watched. Or batched and queued. Comskip doesn't run continuously. Process one recording, then the other. If the first accumulates more in-process recording, the run it against that unprocessed portion once other tasks are complete. This is not an unsolvable problem.

Why do optional steps belong only in post processing? I don't see the logic behind that. If it's an optional step, the optionally run it after a recording is complete, or optionally run it as the recording is in process. Segments of video that are stored on the server can be batched and queued regardless of being in-process or completed recordings, with identical resource implications. They are being processed one-at-a-time regardless.

You're right, I do want the missing aspects of SageTVs feature set in Channels, and I do run both SageTV and Channels concurrently. SageTV has other architectural limitations that prevent it from offering everything that Channels does, such as broad client compatibility. I don't understand why you would take the stance that Channels shouldn't implement the valuable features of other platforms. It was Steve Jobs who said “We have always been shameless about stealing great ideas.” I suggest you also give SageTV a try, understand it's limitations, and also experience for yourself some of the great features it offers. If you actually try in-process commercial detection, you may find you actually like it. Or maybe you don't watch sports, and don't care about skipping commercials and being caught up to real time at the end of the game, and that's OK too. Not every use case is for every user.

For your suggestion that I pause on a commercial, go do something else, and then return and fast-forward, I think that's a terrible user experience. Why should the user have to change their behavior because of a technical limitation of a product? The goal of a product should be to solve the problems of the user, not to make the user behave differently and put up with with the technology.

And to be clear, these are all "first world problems". This isn't about curing cancer or ending world hunger. It's about making a perfect user experience where the technology solves to problems of the user. And the problem I wish Channels would solve for me is, when I sit down to watch a football game 30 minutes after it starts, skip all of the commercials automatically so that I'm caught up with real time by the end of the game.

One thing to keep in mind with this request is that currently the live TV buffer is all on the client side, not on the server. Therefore all of this work would have to be done on the client. I’m not sure how feasible that is. On another thread recently about live TV buffer size, the option of moving the live TV buffer to the server was discussed, but the devs chimed in that (not surprisingly) that would be a huge change to the architecture of the application. As such, very costly in terms of development resources.