INTERACT FORUM

Windows => Television => Topic started by: eve on March 22, 2023, 12:54:33 pm

Title: Commercial Timestamping?
Post by: eve on March 22, 2023, 12:54:33 pm
How does JRiver keep track of 'commercial' segments, and can it use these to automatically skip portions of a video?

I wrote a little thing so I can click a button injected into YouTube on my tablet interface, and then another system running JRiver will get the video and play it (to simplify). Right now, I just filter out the irrelevant, naggy crap from YouTube videos using SponsorBlock (obviously), but this is another step. In an ideal world, I'd just use those timestamps to tell JRiver which parts of the original to skip instead of re-writing the file.

I figured since TV support is a big deal with JRiver, it would have a way to deal with commercials that I could maybe translate to my use case. I'd test this on my own but I don't have a TV tuner or JRiver set up for this.





Title: Re: Commercial Timestamping?
Post by: Yaobing on March 22, 2023, 01:27:56 pm
No, we don't do that, but we support the use of ComSkip.

Short of installing ComSkip, during playback you can also manually skip them by jumping forward 30 seconds.  Keep pressing right-arrow key until regular video resumes.
Title: Re: Commercial Timestamping?
Post by: eve on March 22, 2023, 01:36:32 pm
We support the use of ComSkip.

Short of installing ComSkip, during playback you can also manually skip them by jumping forward 30 seconds.  Keep pressing right-arrow key until regular video resumes.

Okay so it seems that ComSkip generates a file that JRiver can understand? Is it the csv, Zoom Player or VideoRedo output that JRiver wants? I assume whatever it is, if it's named identically and placed in the same folder JRiver picks it up?
Title: Re: Commercial Timestamping?
Post by: eve on March 22, 2023, 01:50:06 pm
No problem to write a video file without the segments but it's sort of inefficient when you could retain the original and just tell JRiver to not play portions.
Title: Re: Commercial Timestamping?
Post by: tzr916 on March 22, 2023, 03:36:37 pm
The file JRiver uses for skipping commercials is an .EDL file with the same name as the tv show. It's basically just a text document with numbers in it, example:
Code: [Select]
776.49 975.22 0
1338.79 1547.85 0
1752.33 1779.28 0
1950.60 2111.89 0
2537.84 2744.68 0
3176.36 3333.63 0
Title: Re: Commercial Timestamping?
Post by: eve on March 22, 2023, 03:38:53 pm
The file JRiver uses for skipping commercials is an .EDL file with the same name as the tv show. It's basically just a text document with numbers in it, example:
Code: [Select]
776.49 975.22 0
1338.79 1547.85 0
1752.33 1779.28 0
1950.60 2111.89 0
2537.84 2744.68 0
3176.36 3333.63 0

!!
Thank you. This was the exact answer I was looking for :) Do you happen to know 'what' these numbers are? Seconds or?

Title: Re: Commercial Timestamping?
Post by: tzr916 on March 22, 2023, 03:45:09 pm
Beyond me, never needed to know because the program Comskip generates them for me.
http://www.kaashoek.com/comskip/index.php
Title: Re: Commercial Timestamping?
Post by: eve on March 22, 2023, 04:00:36 pm
Okay tried it. It's seconds :) That was easy. The relevant area's show up in JRiver's OSD but they aren't being skipped.
It's probably a setting somewhere, there's a setting to display them in the OSD.
Title: Re: Commercial Timestamping?
Post by: tzr916 on March 22, 2023, 04:17:48 pm
...but they aren't being skipped...
Odd, I don't remember any settings for that, it should just work.
Title: Re: Commercial Timestamping?
Post by: eve on March 22, 2023, 04:42:16 pm
Odd, I don't remember any settings for that, it should just work.

Worked! Just reloaded the file. Any subsequent ones have worked too so who knows!

This is super helpful and probably also an avenue to get opening titles on series skipped too.

Thanks again for the simple answer I was looking for.
Title: Re: Commercial Timestamping?
Post by: eve on March 22, 2023, 05:06:08 pm
How convenient, it outputs it's own listing of SponsorBlock chapters alongside the regular video ones, I don't even need to use mediainfo to check the embedded chapters like I worried I might.
Code: [Select]
"sponsorblock_chapters": [
    {
      "start_time": 3.225,
      "end_time": 14.515,
      "category": "selfpromo",
      "title": "Unpaid/Self Promotion",
      "type": "skip",
      "_categories": [
        [
          "selfpromo",
          3.225,
          14.515,
          "Unpaid/Self Promotion"
        ]
      ]
    },
    {
      "start_time": 70.557,
      "end_time": 85.265,
      "category": "sponsor",
      "title": "Sponsor",
      "type": "skip",
      "_categories": [
        [
          "sponsor",
          70.557,
          85.265,
          "Sponsor"
        ]
      ]
    },
    {
      "start_time": 85.165,
      "end_time": 94.303,
      "category": "intro",
      "title": "Intermission/Intro Animation",
      "type": "skip",
      "_categories": [
        [
          "intro",
          85.165,
          94.303,
          "Intermission/Intro Animation"
        ]
      ]
    },
    {
      "start_time": 223.049,
      "end_time": 239.399,
      "category": "selfpromo",
      "title": "Unpaid/Self Promotion",
      "type": "skip",
      "_categories": [
        [
          "selfpromo",
          223.049,
          239.399,
          "Unpaid/Self Promotion"
        ]
      ]
    },
    {
      "start_time": 252.047,
      "end_time": 254.237,
      "category": "filler",
      "title": "Filler Tangent",
      "type": "skip",
      "_categories": [
        [
          "filler",
          252.047,
          254.237,
          "Filler Tangent"
        ]
      ]
    },
    {
      "start_time": 528.721,
      "end_time": 539.281,
      "category": "filler",
      "title": "Filler Tangent",
      "type": "skip",
      "_categories": [
        [
          "filler",
          528.721,
          539.281,
          "Filler Tangent"
        ]
      ]
    },
    {
      "start_time": 587.968,
      "end_time": 624.071,
      "category": "filler",
      "title": "Filler Tangent",
      "type": "skip",
      "_categories": [
        [
          "filler",
          587.968,
          624.071,
          "Filler Tangent"
        ]
      ]
    },
    {
      "start_time": 988.414,
      "end_time": 1034.233,
      "category": "sponsor",
      "title": "Sponsor",
      "type": "skip",
      "_categories": [
        [
          "sponsor",
          988.414,
          1034.233,
          "Sponsor"
        ]
      ]
    },
    {
      "start_time": 1033.89,
      "end_time": 1055,
      "category": "outro",
      "title": "Endcards/Credits",
      "type": "skip",
      "_categories": [
        [
          "outro",
          1033.89,
          1055,
          "Endcards/Credits"
        ]
      ]
    }
  ],

Title: Re: Commercial Timestamping?
Post by: eve on March 23, 2023, 02:24:25 pm
Just finished validating this. Everything is good. Super simple. Click a button injected into a youtube video's page on my tablet, my JRiver renderer starts playing it with all the stuff I don't want automatically skipped.

Only thing to note, when you write out an EDL based upon the timestamps in the json metadata, you'll want a tab, not spaces between the two timestamps, the 0 at the end of each line can just be separated by a space.