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

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.

Perhaps I'm a bit opinionated, and this might come across with the wrong tone online. However, if you are happy using SageTV, but it has missing features you would like to see implemented, you are aware that it is open source, yes? There is nothing stopping you from implementing the missing features yourself, especially as it sounds as if you believe it will be easy since you think there won't be much extra work for the Channels team to implement them.

(If you do not wish to add the features yourself, there are several ways to contract third-parties to implement them for a fee. It all comes down to how much you value these features, and how necessary you feel they are. But, Channels is not an open code base, so you do not have the ability to modify it. SageTV, how, does offer you this route to implement missing features, or even improve their clients.)

I'm a paying user of Channels DVR, and my request for adding a feature is as valid as yours. I don't see why you keep pushing this discussion off topic to try to invalidate my opinion and discourage my use of Channels DVR. The purpose of this forum is to discuss how to improve Channels DVR. This particular topic is requesting the auto-skip of commercials without requiring the user to take unnecessary action. There's a secondary request to do this for in-process recordings.

If you think you would use these features, then say so. If you don't think you would use them, then that opinion is related to the topic as well. But please don't take the discussion off topic by telling me how to spend my time and money on things not related to Channels DVR.

2 Likes

I see what you're saying about the live TV buffer, and that would definitely be a significant architecture change if implemented that way. But I don't think the live TV buffer on the client should be targeted for this feature.

The implementation that would be much more compatible with current architecture is to only run comskip server-side against in-process recordings - against the portion saved on the server, and not on the client at all. If the client is buffering what is being recorded on the server, the server could push a message to the client saying "your buffer has a commercial starting at 505.12 seconds and ending at 565.73 seconds", and the client could flag that portion of the buffer. But if the client is buffering live TV that is not being recorded to disk on the server, then that content would be ineligible for server-side comskip analysis.

So to be clear, in-process comskip analysis would never happen when flipping through live tv channels. It would only happen for scheduled recordings that are being watched while being recorded, with the watch delay being ~5 minutes or more.

I'm also a former SageTV user and the thing I like most about Channels is how well it works for live tv,
It's much more responsive than SageTV which records everything on the server. This has made my wife much happier with Channels over SageTV, plus there's less "moving parts". Even if the server is down for some reason she can still watch live tv. However, the thing I miss the most is the automatic commercial skipping for recordings.
You guys seem to be intertwining two separate things here. Comskip can run either during a recording or after it's finished. As far as I can tell Channels only allows for running comskip once the recording is finished. In my experience this is fine. My server is fairly fast and can finish marking all the commercials in less than 10 minutes. This same server can run comskip on an in-progress recording in SageTV with no problem. However, I've never tried it on 2 recordings at the same time.
It would be nice to be able to run it on an in-progress recording. In our case we often watch a scheduled recording about 30 minutes in. In this case I think that comskip would work.

This is completely separate from having Channels automatically skip to the end of a commercial break during playback of previously recorded shows without having to touch the remote. I also think that this would be a great feature. However, to be fair, this wasn't a native feature of SageTV, which was also a commercial product, but was a user developed add on.

1 Like