Download or see complete readme description and instructions ***here***.

Note: With ver. 0.80 now supports TV Suite 4 with MPEG4 outputs and profiles. See **this**.

WHAT IS IT?

A free utility program for TiVo-to-Go (e.g., TiVo Desktop or TiVoPlaylist) users who use VideoReDo (Plus or TV Suite) for editing transferred TiVo files. It runs on a Windows computer with VideoReDo (VRD) and TiVo Desktop installed (for registry settings only). TVAP detects TiVo files being transferred and, when transfer completes, it automatically and silently runs VideoReDo processes on the files as configured by the operator in the program GUI. QuickStream Fix (QSF) and/or Ad Detective scans ("Ad Scans")may be run. Optionally, all three file types (.TiVo, QSF outputs and Ad Scan outputs) are moved automatically to specified folders after processing is completed, or the original .TiVo file is deleted. Output file types of MPEG2 (.mpg), DVD-VOB (.mpg), DVR-MS (.dvr-ms), TS (*.ts) and TiVo (.tivo) are supported. ALL configuration is via the GUI - NO MANUALLY PREPARED
CONFIGURATION FILES ARE REQUIRED!

You can also select a .TiVo file and click a button to launch the "normal" (interactive GUI) version of VideoReDo (Plus or TV Suite) with the file loaded. This allows you to set Ad Detective parameters or just to preview the video (or anything else VRD can do).

Several metadata items are read from the TiVo files (e.g., Description, Genre, Subtitle/Episode, Episode #, Movie Year, Recording Date/Time). These are displayed by right-clicking on the file in the GUI file list and some of them are inserted in DVR-MS output files. pyTivo metaData files are automatically generated and paired with output MPEG2 files.

TVAP will run a batch file of your creation after processing each .mpg, .dvr-ms or .ts file -- this is typically used to run HandBrake to create a .mp4 version.

You can configure to produce a project (.vprj) file with automatic (Ad Detective or ComSkip) cuts as your output file. TVAP remembers this and displays a status of "AWAITING CUTS" for this video. Then if you later review this project and save it with your modified cuts, TVAP will automatically call VRD to produce the final edited output video with YOUR cuts. For videos that are awaiting cuts the "Run VideoReDo" button will load the project file, ready for you to review and modify the cuts.

You have the option of using ComSkip for commercial detection instead of the VideoReDo Ad Detective.

Read the "Things to Know" section and the Change Log at the end of the TVAP-readme.txt file for more details.

THE BOILERPLATE:

VideoReDo is a trademark of DRD Systems, Inc.
TiVo is a trademark of TiVo, Inc.

TVAP is free and is not an official product of either VRD or TiVo, neither of which are providing
support for it, nor do they officially endorse it.

FEATURES:

- GUI Selection of VRD operations: Default and individual settings for each TiVo file. Specific files may also be "blocked", so no processing occurs.

- TVAP is lightweight: Uses less than 20MB of memory exclusive of VRD requirements. Uses less than 1% of processor time when just monitoring for .TiVo transfers.

- Minimizes to system tray.

- File Folder in .vprj file created by Ad Scan is automatically modified if the scanned file was moved by TVAP (otherwise the .vprj file cannot be opened by VRD).

- For mpeg2 outputs, automatically generates a text metadata file that will automatically be used by pyTivo transcoding server (http://pyTivo.armooo.net) to attach metadata to files served back from pc to TiVo.

- For mpeg2, TS or dvr-ms outputs, if you place a batch file named TVAPpostProcess.bat or TVAPpostProcess.cmd in the final destination directory TVAP will run the batch file upon completion of VRD processing. The filename WITHOUT the extension and without the path is passed as the argument to this batch file. No configuration is necessary -- if the batch file is there it will be run.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. | To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. | To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

1. Minimizes to system tray icon. Click icon to minimize/restore program window.

2. Progress bar now active for file moves.

Readme file updated and added Change Log section at end.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Seems to work as advertised ... if only I could make Ad-Detective more reliable!

Dan203 gave TVAP a quick trial and posted on the VideoReDo forum.

One of his comments was:

Quote:

3) You should offer a way to actually launch VRD from the program so that people can adjust the Ad-Scan variables.

I've had almost no experience trying to tune Ad Detective. I usually let it run and do the cuts interactively. This can be done using the .vprj files automatically generated by TVAP Ad Scans.

Questions I have:
1. Do you agree with Dan203's suggestion?

2. If you adjust Ad Detective in VideoReDo separately (outside TVAP) can/will those settings carry over to when TVAP runs Ad Detective? (It must be either this or else default settings are used for silent operation, I think.)

3. What TVAP functionality for Ad Scan setting is most desirable? Does launching the complete VideoReDo interactive version from TVAP offer significant advantages compared to just running VRD the normal way?

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Traditionally I have stayed away from Ad-Detective because of its unreliability. It's usually faster for me to scan through a recording and remove the commercials manually instead of fixing Ad-Detective's marks.

I have not put a lot of effort into "tuning" it however. Plus, this is my first experience running it via command-line, so I have no idea if my settings through the GUI are used when your application invokes it.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. | To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Traditionally I have stayed away from Ad-Detective because of its unreliability. It's usually faster for me to scan through a recording and remove the commercials manually instead of fixing Ad-Detective's marks.

I have not put a lot of effort into "tuning" it however. Plus, this is my first experience running it via command-line, so I have no idea if my settings through the GUI are used when your application invokes it.

Poked around and found the Ad Detective settings are persistent across different files and different runs of VRD -- which makes sense because I was able to find them all in the Registry! So the settings are global and will be used when TVAP runs ad scans.

Thus it might make sense to be able to launch VRD in GUI mode from TVAP on whatever file is selected, tune or adjust the parameters, then return to automated TVAP operation. I'm guessing this is what Dan203 had in mind.

Of course then you have one-stop shopping via TVAP -- you could use this feature to preview the video and ????

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Added ability to launch full-GUI VRD from TVAP with selected .TiVo file loaded.
This allows user to do anything normally possible in VRD, but in particular the
Ad Detective settings can be tuned and adjusted and they then will be used in TVAP Ad Scan processing. (You can also preview the .TiVo file, load another file etc.) TVAP's state doesn't change and it waits for you to shut down VRD before
it will do any auto-processing. See the readme for more info.

WARNING: When I clicked on the ftp link in the first post (repeated here: ftp://upload:upload@videoredo.net/VR...AutoProcessor/ ) I was startled to find it showing the wrong version of TVAP. I had to refresh my browser to get the correct version to show. Don't know what would happen if I tried to download the wrong version, since it actually wasn't there -- I had deleted it when I uploaded the newer version.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Another suggestion.... Allow selection of output file type. One thing this program might be useful for, other then simply converting files to MPEG, is converting them to DVR-MS. You see in Windows MCE you can play .tivo files without decrypting them, but the FF and RW features are disabled. However if you use VRD to convert the .tivo files to DVR-MS first then they play with full trickplay capabilities. Heck if you wanted to get really fancy you could even use tivodecode to grab the metadata from the TiVo file and then apply it to the newly created DVR-MS, so it would be a seamless transfer from TiVo to MCE Now Playing. I actually considered writing something like this myself, but I just haven't had the time yet and it would actually fit into your program quite well.

Now automatically corrects the folder location in a .vprj file created by Ad Scan without auto-cut. Explanation: If you have TVAP move the Ad Scan input file to another directory when completed, then the .vprj file is not correct and you can't open it in VRD -- UNLESS you change the folder location in the .vprj file (third line) to point to where you moved the input file -- which is what TVAP now does!

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

I am sure I speak on behalf of the other users who benefit from this when I say THANKS.
Well done. I hope your hard work does not go unnoticed.

Well, you noticed it! Thanks!

I did this for my own use and decided to share it. However it ended up being a lot more than I originally planned. Just kept thinking of one feature or another that would be desirable.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Another suggestion.... Allow selection of output file type. One thing this program might be useful for, other then simply converting files to MPEG, is converting them to DVR-MS. You see in Windows MCE you can play .tivo files without decrypting them, but the FF and RW features are disabled. However if you use VRD to convert the .tivo files to DVR-MS first then they play with full trickplay capabilities. Heck if you wanted to get really fancy you could even use tivodecode to grab the metadata from the TiVo file and then apply it to the newly created DVR-MS, so it would be a seamless transfer from TiVo to MCE Now Playing. I actually considered writing something like this myself, but I just haven't had the time yet and it would actually fit into your program quite well.

Dan

I'm using the COM interface functions as documented in the VRD help. The FileSaveAsEx function documentation describes only three file types BUT I notice they align exactly with the first three output types in the VRD help:

Quote:

Program Stream (MPG) - A standard MPEG1 or MPEG2 program stream.

Elementary Stream (MPV) - A demultiplexed version of the output program. Separate audio and video files will be written.

DVD Stream (VOB) - These files are VOB formatted files suitable for input to the DVDAuthor utility. They cannot be used directly on a DVD. They will need to be processed by a DVD authoring utility.

Does this mean I can use 5 and get DVR-MS ? This would be a simple mod I think. Probably would add another "Destination" folder to which DVR-MS could be moved.

I wonder how complicated the tivodecode thing would be? I've heard of it but haven't done anything with it. Need to search forums I guess. What form is meta-data coming out of tivodecode and going into VRD (for DVR-MS)? Text? XML? Helpful hints are welcome!

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

I'm using the COM interface functions as documented in the VRD help. The FileSaveAsEx function documentation describes only three file types BUT I notice they align exactly with the first three output types in the VRD help:

The last 2 wont actually be supported until the DVD portion of TVSuite is released, but I added them anyway just for future reference.

Quote:

Originally Posted by dlfl

I wonder how complicated the tivodecode thing would be? I've heard of it but haven't done anything with it. Need to search forums I guess. What form is meta-data coming out of tivodecode and going into VRD (for DVR-MS)? Text? XML? Helpful hints are welcome!

I've played around with tivodecode a bit. It's not the easiest code to work with, as it's all in standard C, but I managed to get it to output the TiVo metadata, which is XML, to an MFC CString object. From that point you could feed it into the MSXML parser and pull whatever data you wanted from it. To add the metadata to the DVR-MS file you would use a COM object called IWMMetadataEditor and it's IWMHeaderInfo interface. There is a great article about this out there called "Fun with DVR-MS" if you're really interested.

I plan to add the dvr-ms output option and will look into the metadata thing.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

What language are you using for this? If it's MFC C++ then I can help you out. If it's something else I might still be able to help you out, but it might have to wait until I have some free time.

Dan

I'm using M$ VS2005 C# (.NET). I found some Toub (the "Fun with ... " guy) stuff on editing dvr-ms metadata and it already appears to be written in that. Haven't looked at the TivoDecode stuff yet.

I don't know if there's a way to link a MFC-based module into C# .NET code. Will check the help.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

I might be able to port my code over to an ActiveX control. If I get some free time I'll give that a shot.

Dan

That sounds promising!

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

The output file is bad -- over twice the size it should be, won't open in WMP11, and won't play when opened in VRD.

Is this known behavior? I can work around it by just forcing the intermediate file (the QSF'ed one) to be mpeg instead of dvr-ms when doing both QSF and AdScan. The output file seems OK then.

I've only tested with one 40 MB tivo for which AdScan doesn't define any cuts. That untypical file could be triggering odd behavior I suppose.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

TVAP will now output DVR-MS files. MetaData transfer is still on the TO DO list.

The problem with QSF+AdScan w/ AutoCut for DVR-MS output was resolved.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

I got the Toub dvr-ms class library connected to TVAP and displayed the 32 metadata items it found in a .dvr-ms created from a .tivo with VRD -- see the attached image.

Titlle and description aren't there -- I assume this is what we want to get from TivoDecode and add in with the Toub library (?). What else?

I wonder if adding metadata requires a re-write of the whole file? In other words does the added metadata make the file longer or does it already have space allocated for metadata growth?

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

Editing metadata in a DVR-MS file is simple. There is a COM interface you use to open the file, then you just set the various values. Getting the values from a .tivo file is a little trickier, but the latest version of tivodecode has this functionality. The cLI version of tivodecode has it implemented in such a way that it simply dumps the XML data from the .tivo file to disk. I rewrote the code in an MFC app and pulled the XML into a simple CString. When I get time I'll try to port that over to, at the very least, a simple ActiveX control that allows you to call a a function with the .tivo file path and get a BSTR with the XML in return. From there you can feed the XML into MSXML, parse the data you want, and copy it into the DVR-MS file.

If I have enough time I'll try to do all the heavy lifting and write a function that allows you to feed it the path of the .tivo file and the DVR-MS and the ActiveX will do all the work of copying over the data. I'm a little busy this week, and I'm going out of town this weekend, so it'll probably be next week before I have time to actually do any of this. Stay tuned.

Editing metadata in a DVR-MS file is simple. There is a COM interface you use to open the file, then you just set the various values. Getting the values from a .tivo file is a little trickier, but the latest version of tivodecode has this functionality. The cLI version of tivodecode has it implemented in such a way that it simply dumps the XML data from the .tivo file to disk. I rewrote the code in an MFC app and pulled the XML into a simple CString. When I get time I'll try to port that over to, at the very least, a simple ActiveX control that allows you to call a a function with the .tivo file path and get a BSTR with the XML in return. From there you can feed the XML into MSXML, parse the data you want, and copy it into the DVR-MS file.

If I have enough time I'll try to do all the heavy lifting and write a function that allows you to feed it the path of the .tivo file and the DVR-MS and the ActiveX will do all the work of copying over the data. I'm a little busy this week, and I'm going out of town this weekend, so it'll probably be next week before I have time to actually do any of this. Stay tuned.

Dan

Thanks, Dan

Yes, the Toub DVR-MS class library (managed .NET dll assembly) provides a wrapper for the COM interface. I've got the processes of reading metadata, adding more metadata and writing it back to the file going fine using this library. Happy to see it doesn't change file size and is very fast because it doesn't have to re-write the entire file (tested on 1 GB+ file).

All I'm missing now is getting the metadata from the .TiVo file.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

I didn't have a lot of time to add all the fancy XML parsing, so you'll have to do that yourself. This ActiveX control has two functions GetMetaData and GetMetaData2, both of which take a single parameter which is the path to the TiVo file. The reason there are two is because each TiVo file has two chunks of meta data. The second, accessed via the 2 function, has a little more data in it but I'm not sure if it's necessary for what you're doing or not.

I didn't have a lot of time to add all the fancy XML parsing, so you'll have to do that yourself. This ActiveX control has two functions GetMetaData and GetMetaData2, both of which take a single parameter which is the path to the TiVo file. The reason there are two is because each TiVo file has two chunks of meta data. The second, accessed via the 2 function, has a little more data in it but I'm not sure if it's necessary for what you're doing or not.

Anyway let me know if you have any trouble with it.

Dan

Thanks Dan!

I got it hooked into my C# program and it seems to work. However the string returned doesn't make sense, at least put into the standard C# string type which is 16-bit unicode. I tried to assign the function return to a byte array but it won't compile because the functions definitely return type "string". I suspect I need to convert to UTF-8 or something like that. What can you tell me about the structure of the returned strings, i.e., one byte per character or ?

When interpreted as 16bit unicode it looks like hieroglyphics! I think if I know the actual encoding type it will be easy to re-encode it. Then I can get on with the XML parsing.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

It's a multi-byte string, not unicode. Try using the multiByteToWideChar function if you need to convert it to unicode.

Dan

Well, I've spent several hours trying to "crack" this string (i.e., get something that looks like xml).
The multiByteToWideChar function exists only in C++ land but I've tried all kinds of combinations of UTF encoders and decoders. No matter what I do I see almost all byte values are either greater than 127 or 0, i.e., outside the normal ASCII range.

The string object returned is only 336 unicode chars long while the xml chunk for the same .tivo file produced by TivoDecode is about 7kb. I don't see how that much info could be in such a small string (??).

The prototype for the ocx functions as imported by C# says they return "string" type objects which are unicode by definition.

__________________
"It must be swell to be so perfect and odor-free" -- Del Griffith

VideoReDo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

pyTivo users: Try To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts. and To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.