OliveTin for Channels: An Interface for Misc Channels DVR Scripts & Tricks

Yup, I understand about dependencies and all. I'm more concerned with security vulnerabilities and bug fixes.

FWIW, I've got 117.0.5938.132 working just fine on MacOS, but I do like the idea of having cc4c running on the main server vs my desktop Mac. And, of course, just because it works on MacOS doesn't mean that it will work on Linux.

For the Generate Filtered Channels DVR Log action
Any chance of saving the search criteria or reading it from a file?

I've got a couple queries I run, one of which shows what happens with recordings.
grep filter for that is

ended prematurely:|[DVR] Error running job|[DVR] Finished job|[DVR] Job cancelled|[DVR] Recording for job|[DVR] Starting job|[TVE] action=auth mvpd|[TVE] action=authed|[TVE] action=navigate
1 Like

Sure. Maybe something like file://filename.grep in the filter field to run a predefined search saved in a file?

That would work.

1 Like

@chDVRuser As one of our resident experts on Channels API endpoints, what would be required to run a metadata update as referenced here?:

Looks like it's going to be implemented in Channels DVR

Is the only way to clear the Logs view by restarting the docker container?

I have 59 entries showing
2023-10-23 20:27:07 List Channels with Comskip Off
2023-10-23 20:26:59 List Channels with Comskip Off
2023-10-23 20:26:53 List Channels with Comskip Off
2023-10-23 20:26:45 List Channels with Comskip Off
2023-10-23 20:26:38 List Channels with Comskip Off
2023-10-23 18:27:21 Generate Filtered Channels DVR Log
2023-10-23 18:27:09 Generate Filtered Channels DVR Log
2023-10-23 18:26:43 Generate Filtered Channels DVR Log
2023-10-23 18:25:45 Generate Filtered Channels DVR Log
2023-10-23 18:15:29 Generate Filtered Channels DVR Log
2023-10-23 18:12:10 Generate Filtered Channels DVR Log
2023-10-23 16:42:31 Generate Filtered Channels DVR Log
2023-10-23 16:42:15 Generate Filtered Channels DVR Log
2023-10-23 16:17:15 Generate Filtered Channels DVR Log
2023-10-23 14:56:56 Generate Filtered Channels DVR Log
2023-10-23 14:26:53 Generate Filtered Channels DVR Log
2023-10-23 14:19:31 Generate Filtered Channels DVR Log
2023-10-23 14:18:13 Generate Filtered Channels DVR Log
2023-10-23 13:59:44 Generate Filtered Channels DVR Log
2023-10-23 13:59:04 Generate Filtered Channels DVR Log
2023-10-23 13:58:33 Generate Filtered Channels DVR Log
2023-10-23 13:50:34 Generate Filtered Channels DVR Log
2023-10-23 13:44:21 Generate Filtered Channels DVR Log
2023-10-23 13:44:11 Generate Filtered Channels DVR Log
2023-10-23 13:44:01 Generate Filtered Channels DVR Log
2023-10-23 13:43:49 Generate Filtered Channels DVR Log
2023-10-23 13:43:36 Generate Filtered Channels DVR Log
2023-10-23 13:39:11 Generate Filtered Channels DVR Log
2023-10-23 13:38:28 Generate Filtered Channels DVR Log
2023-10-23 13:36:37 Generate Filtered Channels DVR Log
2023-10-23 13:23:03 Generate Filtered Channels DVR Log
2023-10-23 13:21:46 Generate Filtered Channels DVR Log
2023-10-23 13:21:13 Generate Filtered Channels DVR Log
2023-10-23 13:20:07 Generate Filtered Channels DVR Log
2023-10-23 13:18:45 Generate Filtered Channels DVR Log
2023-10-23 13:16:11 Generate Filtered Channels DVR Log
2023-10-23 13:15:15 Generate Filtered Channels DVR Log
2023-10-23 13:13:42 Generate Filtered Channels DVR Log
2023-10-23 13:11:57 Generate Filtered Channels DVR Log
2023-10-23 13:11:04 Generate Filtered Channels DVR Log
2023-10-23 13:10:00 Generate Filtered Channels DVR Log
2023-10-23 12:19:13 Generate Filtered Channels DVR Log
2023-10-23 11:58:04 Docker-Compose Examples for Channels & Related Extensions
2023-10-23 11:42:43 Create Channels List in CSV Format
2023-10-23 10:07:29 Channel Lineup Change Notifications (23Oct23_09:11)
2023-10-23 09:11:04 Channel Lineup Change Notifications (23Oct23_08:38)
2023-10-23 08:38:00 Channel Lineup Change Notifications (22Oct23_17:05)
2023-10-22 17:48:57 Docker-Compose Examples for Channels & Related Extensions
2023-10-22 17:47:55 Docker-Compose Examples for Channels & Related Extensions
2023-10-22 17:06:33 Channel Lineup Change Notifications (22Oct23_17:05)
2023-10-22 17:06:22 Channel Lineup Change Notifications (22Oct23_17:05)
2023-10-22 17:06:13 Channel Lineup Change Notifications (22Oct23_17:05)
2023-10-22 17:06:04 Channel Lineup Change Notifications (22Oct23_17:05)
2023-10-22 17:05:54 Channel Lineup Change Notifications
2023-10-22 17:05:40 Channel Lineup Change Notifications (22Oct23_15:05)
2023-10-22 17:05:30 Channel Lineup Change Notifications (22Oct23_15:05)
2023-10-22 17:05:21 Channel Lineup Change Notifications (22Oct23_15:05)
2023-10-22 17:05:09 Channel Lineup Change Notifications (22Oct23_15:05)
2023-10-22 17:05:00 Channel Lineup Change Notifications (22Oct23_15:05)

and can't tell what they are from unless I open the STDOUT and STDERR, and even then some don't display the DVR I ran it against.

If it's not too difficult it would be nice to have a Delete/Clear next to each one.

Good point! Since, I've been in development mode I've been restarting frequently enough that I don't get much build-up of results. But I can see the issue.

As far as making sure that each result reflects which DVR it came from that's something I can work on. A delete button per log entry would be something we'd need to lobby the OliveTin developer for. I'll see what I can figure out about how and where the log entries are stored, and maybe we can reset the entire log without a container restart -- or better yet some sort of a date cutoff to purge older entries?

Let me know which activities need a DVR reference added, as you come across them, and I'll add it.

Another thought I had is if the individual action logs (std & err out), wherever they're currently held, can be moved to ActionLog files in the /config directory then there's no need to keep the Log display on the web page. Maybe replace that page with an ActionLog file picker? One could always delete an ActionLog file from the /config directory if they no longer need to retain it.

List Channels with Comskip Off
Mark an Episode for Re-Recording

I ran into issues previously with docker containers on my Synology when volumes were mapped like you did Channels DVR on docker - #38 by chDVRuser and I found out it works fine if I mapped them to the Docker folder /volume1/docker
So for yours, this should work without causing permission issues

volumes:
      - /volume1/docker/olivetin:/config # replace host path or volume as needed

and then no need to use

    user: root

I don't remember when, but I came to the same conclusion on the volume mapping and mine looks exactly as you show. Thanks for the followup.

1 Like

Thinking about this a bit more, what if we sent all stdout to a log file in addition to stdout? Something like:

host-ip_scriptname_latest.log

So we'd know what was run, for which DVR, and that it would be the most recent -- as we'd overwrite the previous "latest"?

The OliveTin log would be there to look at right away, with our log files available and persistent through restarts.

Sounds good. I would have to look at an actual example to be sure.

host-ip_scriptname_latest.log wouldn't work for me as all my DVR's have the same IP address and different ports.
Would need host-ip-port_scriptname_latest.log

We're on the same page -- that's what I meant to write, host:port_scriptname_latest.log.

Seems like this will be a good approach.

1 Like

I know you really mean host-port_scriptname_latest.log :smile:
Windows doesn't allow the colon character in a filename.

Doh! Yes, absolutely.

This might be useful if someone is remote and has remote access to OliveTin for Channels and needs to restart or stop their Channels DVR service.

I'll leave it up to you if you want to include it or not.
I just run it from a command line when needed.

I would show a warning before running it that anyone using it should know what they're doing and accept the consequences of continuing. It will stop anything in progress, including recordings.

Another excellent suggestion!

I've done a build under the :test tag, and it includes the following new or updated OliveTin Actions:

Restart or Shutdown a Channels DVR Server - Restart or shutdown a DVR the easy way!

Remove Comskip Markers from a Recording - If you've edited a recording to remove the commercials, or had Comskip run on a recording where there are no commercials, this action removes all commercial markers from the DVR for the recording.

List Channels with Comskip Off - This action has been updated to show the DVR name in stdout, and the most recent run of this command will be available as host-port_listcomskipignore_latest.log in the /config directory.

Mark an Episode for Re-recording - This action has been updated to show the DVR name in stdout, and the most recent run of this command will be available as host-port_markforrerecording_latest.log in the /config directory.

And, the current suite of OliveTin Actions:

In the next build, I'll be adding DVR name output to the stdout of all actions where it makes sense -- as well as producing log files in the form host-port_scriptname_latest.log. These will survive restarts, and allow for a quick check of recent results.

Container crashes.
Docker log for the container only shows this as STD OUT
standard_init_linux.go:230: exec user process caused: no such file or directory

And there is nothing in the /config directory.

Thanks for letting me know. I'm in Portugal, so I'm doing a bit of a funky multi-arch build with my laptop here as one node and the ARM node back in the US.

Probably something not quite right with the setup. You should be able to revert to :latest while I chase down the problem.