Manual Recording Feature

I just tried to create a manual recording and found there is no easy way to do so. :astonished:

So I tried to use an advanced pass and can not get the time to work corrected. :frowning_with_open_mouth:

Please add a manual recording option.

Can you explain what you consider a manual recording?

You can manually record anything you find in your guide or by searching.

If you mean by time and duration, the. An Advanced Pass with the available rules is what you would use.

I am trying to create a recording for 10pm today for 1 hour on channel 7.1.

No matter what I enter in the time parameter in the advanced pass, I get no matches.

There are some scripts floating around here to do that .. I have no idea where they are.... dis a search found this.

How to create a Manual Time/Channel based recording job - Playground / Hacks - Channels Community (getchannels.com)

You can go to the guide and record what ever program is listed on that channel and time. If it lists a shorter program than 1 hour, extend the end time. The recording may be listed with the wrong name, but it will be what you want.

You can also search this forum. There is a program called "manual_recording_gui.exe" that will let you setup a manual recording.

I read it, It does not work.

Releases · mjitkop/Channels-DVR-Manual-Recording (github.com)

OLiveTin also has this ....

@NetworkGuy -
This is the thread where I introduced it so you can see more details:

It does if you know how to use it, but I consider it "Advanced" and not for the casual user.
I still use the method of modifying a json template for all the manual recordings I do. This lets me modify any data in the json payload, including making it look identical to a scheduled recording from a pass with the same metadata.

I'm intrigued by this statement. :thinking:

Are you saying that you are using the manual method to schedule recurring recordings (more than one) with a single request just like a pass?

1 Like

I do that with a script. So I have to modify the script for channel, date, time, duration and recurrence.
For a single manual recording I drag and drop a json payload on a Windows cmd file.

Cool! :sunglasses:

I'm really intrigued by this word in the context of a manual recording. In my mind, a manual recording is a one time shot.

Maybe you could provide an example and/or use case.
(I'm not sure if this is derailing this thread now)

Just a simple shell script that I scheduled to run at 2pm every Sunday which scheduled manual recordings for the week on Monday-Friday at 2pm.

I modified that for others I used that ran every hour for 2 days, every week on certain days and times, etc.

#!/bin/sh
# Create 60 minute manual recording on channel 3777 with the Title 'Shepherds Chapel' starting in 24 hours and repeating at the same time every day for 5 days
# No longer using - found EPG source
_CH=3777
_START=$(($(date +%s) + 86400))
_DUR=3600
_TITLE="Shepherds Chapel"
_DESC="Shepherds Chapel 2PM weekday recording"

for _DAYNUMBER in 1 2 3 4 5
do
scheduled_job() {
cat << EOF
{
   "Name": "${_TITLE}",
   "Time": ${_START},
   "Duration": ${_DUR},
   "Channels": ["${_CH}"],
   "Airing": {
      "Source": "manual",
      "Channel": "${_CH}",
      "Time": ${_START},
      "Duration": ${_DUR},
      "Title": "${_TITLE}",
      "Summary": "${_DESC} ${_DAYNUMBER}",
      "Image": "http://192.168.1.4:8189/dvr/uploads/3/content",
      "SeriesID": "manual/3777"
   }
}
EOF
}
curl -XPOST http://192.168.1.4:8189/dvr/jobs/new --data-binary "$(scheduled_job)"
# increment _START value by a day
_START=$(($_START + 86400))
done

To give credit, I borrowed this script from racameron and modified it.

Thank you for the explanation and the example.
This is a very special use case.

Very interesting. :thinking: :slightly_smiling_face:

I'm an living edge case!
Here's one where I was trying to schedule recording the "Curious Moment" on the Curiosity channel.

#!/bin/sh
# Create 10.5 minute manual recordings every hour for one week, beginning at _START
_TITLE="Curiosity Moment"
# Start at Sunday, November 26, 2023 12:49:30 AM GMT-08:00
_START=1700988570
# Duration 10 minutes and 30 seconds
_DUR=630
# Frndly 9031 Curiosity channel
_CH=9031
_DESCR="Curiosity Moment"
_SERIESID="manual/9031"
# Every day of the week
for _DAYNAME in SUN MON TUE WED THU FRI SAT
do
# Every hour from 12:49:30 AM
for _HOURNUM in 0049 0149 0249 0349 0449 0549 0649 0749 0849 0949 1049 1149 1249 1349 1449 1549 1649 1749 1849 1949 2049 2149 2249 2349
do
# wait 0.7 seconds between POSTS
sleep 0.7
scheduled_job() {
cat << EOF
{
   "Name": "${_TITLE} ${_DAYNAME} at ${_HOURNUM}",
   "Time": ${_START},
   "Duration": ${_DUR},
   "Channels": ["${_CH}"],
   "Airing": {
      "Source": "manual",
      "Channel": "${_CH}",
      "Time": ${_START},
      "Duration": ${_DUR},
      "Title": "${_TITLE}",
      "Summary": "${_DESCR} ${_DAYNAME} at ${_HOURNUM}",
      "SeriesID": "${_SERIESID}"
   }
}
EOF
}
curl -XPOST http://192.168.1.4:8389/dvr/jobs/new --data-binary "$(scheduled_job)"
# increment _START value by 60 minutes
_START=$(($_START + 3600))
done
done

That gave me enough to edit and create an Imported Video Channel.

Another one off example trying to get a 4K recording from FS1

#!/bin/sh
# Create 30 second manual recordings every minute, beginning at _START
_TITLE="FS1-6197 30 second 4K Test recording Thu 10/19"
_START=1697758200
_DUR=30
_CH=6197
_SERIESID="manual/6197"
for _HOURNUM in 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710
do
# wait 1 seconds between POSTS
sleep 1
scheduled_job() {
cat << EOF
{
   "Name": "${_TITLE}",
   "Time": ${_START},
   "Duration": ${_DUR},
   "Channels": ["${_CH}"],
   "Airing": {
      "Source": "manual",
      "Channel": "${_CH}",
      "Time": ${_START},
      "Duration": ${_DUR},
      "Title": "${_TITLE} at ${_HOURNUM}",
      "Summary": "${_TITLE} at ${_HOURNUM}",
      "SeriesID": "${_SERIESID}"
   }
}
EOF
}
curl -XPOST http://192.168.1.4:8289/dvr/jobs/new --data-binary "$(scheduled_job)"
# increment _START value by a minute
_START=$(($_START + 60))
done

Here is my problem: I could not find any documentation of what goes in the time parameter of the advanced pass. Based on what I entered, I either has no recordings or dozens which were not the right time.

What is the correct format for Today at 10:00pm? Because entering that in the advanced pass did NOT work.

BTW.....Where is the documentation of what should be entered in the fields of the advanced pass?

Use Case Example:

Multiple times the published schedule does not match the actual broadcast for later that day. (Yesterday for example.) If you hear the schedule has changed and you want to record something, you should not have to be forced to learn JSON to create a simple one-time recording.

Based on the user created GUI's it should be super simple to add a page to the web administration to create a manual recording.

Time CONTAINS Monday 10pm

See this section of the Forum

Official Documentation is here Channels Support — Support Articles and here Knowledge Base - Channels Community

1 Like

Sorry, not finding anything about the format of the time field.

When creating passes:

When using the API to create a manual recording, it is in Epoch time.