Way to send ComSkip request to server

Now that I have a well tuned system to send manual recording requests to the Channels DVR server, it appears that the manual recordings are not being checked for commercials, even though I have "Detect Commercials" checked in settings.

In fact, some I would want ComSkip and others I would not. Having all of them detected would be okay, but even better would be a way to communicate the desired action to the server.

PUT /dvr/files/${fileID}/recomskip

where fileID is the number assigned to your recording.

Or, from the DVR web UI, for the particular recording's entry, select :gear: Options > Redetect Commercials.

Just be careful if you run more than one comskip job at a time, as only the latest comskip job appears in the web UI activity. If you manually kick off 6 comskip jobs you can bring your server to its knees. You have to check the log to see when the jobs are complete.

I'm sending requests from a remote computer. How do I find out the "fileID"?

Ken

From the server's web UI, you can select a recording's View Details option (in the same place as the Redetect Commercials option). Alternatively, to get a listing of all your recordings (including their fileIDs), you can GET /dvr/files.

(Those are the API endpoints and required operation. Pair that with whichever tool you prefer. For instance, if I wanted to get a list of all my recordings, I personally would use (assuming my DVR server is at 10.0.10.81):

curl -XGET http://10.0.10.81:8089/dvr/files > files.json

And then if the file wanted to scan for commercials has the fileID of 6209, I would use:

curl -XPUT http://10.0.10.81:8089/dvr/files/6209/recomskip

And if you mean "not on the same local network" by "remote", then you need to SSH in to some device on your local network, as I don't believe the DVR server accepts API requests from public IPs.)

It would be nice if the request to post a manual recording could somehow return the file ID, but this would be getting me way beyond my knowledge level.

The computer IS on the local network. I guess if it was not, I would need a computer on the local net to act as an intermediary.

Your help is greatly appreciated. Every day this just keeps getting better.

Ken

That's not assigned until it starts recording.

It can't do this, because the fileID is assigned when the recording is made. A scheduled recording does not have a fileID until then.

So this goes back to being a feature request. I guess what I need is a new data item in the original manual request that tells the server that it needs ComSkip after the file is created. I know I want this when I submit the manual recording, but it would be a very complex system that would keep track of requests that have been submitted and needed to be revisited to track down the fileID and submit a ComSkip for it.

If this existed, it would allow interactive users the ability to mark a future (non-series) recording to be ComSkipped later on. This is something I have wanted to do and I'm sure others have wanted to do as well.

Sounds like what you want is: GET /dvr/events/subscribe. This will allow you to have an app/script to monitor what the DVR is doing. Then you can look for when the recording takes place, get its fileID, and send your request for commercial detection.

See the related post here:

I've fixed this for the next build (v2021.02.09.0017). There's also a UI now for setting thread count (only if custom comskip.ini does not exist). Other custom options can be set via the API.

All manual recordings should have comskip run on them. Sounds like something else strange is going on with your setup, and it may be fixed with the new prerelease coming out.

1 Like

Thank You

For comskip?
What API?

curl -XPUT http://localhost:8089/comskip/ini/output_videoredo3/1

1 Like

I really like this information. Is there a way to get a list of of the things that are scheduled to be recorded in the future?

Yes, via /dvr/jobs instead of /dvr/files

Super! I love Channels. It now seems like I can do almost anything.