# TTG, Hydra, SkipMode



## Jon Oexner (Jun 2, 2017)

Hi all,

I'm starting a hobby project to train a neural network to recognize commercial breaks. To do this, I'd like to retrieve recordings and commercial break information from my TiVO Bolt to use as training data. I have a couple of questions:

If I upgrade my Bolt to hydra, will TivoToGo still work?
Is there any documentation for the TTG protocol?
FWIW, I've looked at moyekj's kmttg and have been (double-) reverse-engineering the protocol, but it's been slow going. My current end goal is a Raspberry Pi image that will populate skip mode data for recorded programs on TiVOs on the local network that haven't been entered by tivo.com.


----------



## wmcbrine (Aug 2, 2003)

Jon Oexner said:


> If I upgrade my Bolt to hydra, will TivoToGo still work?


You can take stuff off, but you can't put stuff back.



> _Is there any documentation for the TTG protocol?_


Partial docs here: pyTivo Discussion Forum :: View topic - HMO Specifications

They focus on photos and music, but video is similar. You can read the pyTivo code as well as KMTTG's for more details.


----------



## Jon Oexner (Jun 2, 2017)

wmcbrine said:


> You can take stuff off, but you can't put stuff back.


Thanks so much for the response. AFAICT, there's no direct way to read or write a TiVO's SkipMode cache. Is that correct?


----------



## wmcbrine (Aug 2, 2003)

Jon Oexner said:


> Thanks so much for the response. AFAICT, there's no direct way to read or write a TiVO's SkipMode cache. Is that correct?


I dunno, ask @moyekj about that.


----------



## Dan203 (Apr 17, 2000)

Jon Oexner said:


> Thanks so much for the response. AFAICT, there's no direct way to read or write a TiVO's SkipMode cache. Is that correct?


You can read the skip data but there isn't really a way to match it to the video. The way skip data works is it contains a list of start/end times for each segment of the show with a timecode relevant to the TiVo that was used to record and mark the segments. It then contains a big list of hashes that are generated from the captions and also contain timecodes. When your TiVo downloads the data it compares the hash data generated by the captions in your recording to the hash data in the list and then uses that to offset the timecodes of the segments relative to your recording. If your captions are corrupt, or the captions of the person who recorded the original show are corrupt, then skip doesn't work.

When skip was forst released and moykej discovered the command to download the data I tried every common hash I could find to match what TiVo is using and I couldn't make it work. I used common words in the caption data to find matches throughout the data, but couldn't reverse the hash. Then again I'm not realy a crypto expert so someone more versed in that area might be able to crack it.

The way autoskip works in kmttg is it uses a TiVo or Mini to play the show and then skips through the skip points recording their timecodes. It then uses this data to offset the skip segments download from TiVo rather than the hash of the caption data.


----------



## Dan203 (Apr 17, 2000)

P.S. if you actually come up with a reliable way of commercial detection hit me up. We might consider buying/licensing it from you for VideoReDo.


----------

