PDA

View Full Version : Quest for better quality Tivo-> ipod


jasonrn
12-12-2008, 07:23 PM
I am looking for the easy features of Tivo Desktop Plus to transfer to my ipod, but better quality.

I like: 1-click = transfer, encode, place in Itunes, and tag the file.

Currently, my output using Desktop plus looks somewhat smooth / blurry. Other encoders are very sharp (Handbreak, Videora). I really like the 1-click and it's in my Itunes library method that desktop plus uses.

I have tried modding the tivotrans.dll from reading another post, by upping the bitrate, but the output was the same and it does not automatically put the file in itunes.

I tried kmttg, this worked well, but I had to manually put it in Itunes, then tag it. It also gives me the "noise" line at the top.

My best method has been transferring with tivo desktop, decrypt with TV Harmony, And encode with Handbreak (cropping 4px for the "noise" line), then plopping in itunes... but that is way too time consuming for me. Cutting commercials is not really important to me. I only watch it on the ipod, not outputting it to TV.

Any suggestions?

Jason

goodtrips
12-12-2008, 10:16 PM
jasonrn, i posted a similar question to this forum about a year and a half ago and got some amazing help, so hopefully this helps to pay it forward. i am going to assume you are on windows, but if you're not, hopefully someone else will find this useful.

in my experience, the most polished and solid solution offered on this board (and i have made an effort to try most of them) has by far been dlfl's TVAP app. here is the thread with all the info and download link:
http://tivocommunity.com/tivo-vb/showthread.php?t=359550&highlight=tvap

It relies on tivo desktop to transfer your shows from your tivo to your pc, and then leverages videoredo to clean up those files and remove commercials (if you want). i was less concerned about commercials, but always had sync issues with non-modified tivo transfers. videoredo has been a rare investment in software that i have never regretted and i highly recommend it.

the beauty of the tvap is this:
1. it cleans the video file (and removes commercials) via videoredo
2. it automatically executes a high customizable batch file afterward

the batch file is key for what you want to do. Here is what my (really ugly) batch file looks like:

@echo off
setlocal

HandBrakeCLI.exe -i "%~1.mpg" -o "%~1.mp4" -e x264 -E faac -l 352 -b 1000 -x level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1 -B 160 -R 48 -D 1 -v

FOR /F "tokens=1* delims=(" %%a IN ("%~1") DO set mytitle=%%a & set myrecorded=%%b
FOR /F "tokens=1* delims=-" %%a IN ("%mytitle%") DO set myshow=%%a & set myepisode=%%b
FOR /F "tokens=2* delims='" %%a IN ("%myepisode%") DO set finalepisode=%%a
FOR /F "tokens=1,2 delims=," %%a IN ("%myrecorded%") DO set mydate=%%a & set myyear=%%b
FOR /F "tokens=2,3 delims= " %%a IN ("%mydate%") DO set mymonth=%%a & set myday=%%b
FOR /F "tokens=2 delims='" %%a IN ("%myepisode%") DO set myshowname=%%a
@echo title : %mytitle%
@echo show : %myshow%
@echo episode : %finalepisode%
@echo date : %mymonth%%myday%%myyear%
@echo itunes title : %finalepisode%(%mymonth%%myday%,%myyear%).mp4

AtomicParsley.exe "%~1.mp4" --TVShowName "%myshow%" --TVEpisode "%finalepisode%" --genre "TiVo" --stik "TV Show" --title "%finalepisode%(%mymonth%%myday%,%myyear%)"

for /f "delims=" %%x in ('dir /od /a-d /b *.mp4') do set aptemp=%%x
echo %aptemp%
call addToPlaylist.js "C:\Documents and Settings\My Documents\TiVo\%aptemp%"

ECHO Y | DEL "%aptemp%"
ECHO Y | DEL "%~1.mp4"
ECHO Y | DEL "*.mp4"
ECHO Y | DEL "%~1.mpg"
ECHO Y | DEL "*.txt"

This batch file performs 3 functions:

1. Converts the mpeg2 file to an ipod compatible mp4 using the Handbrake CLI.

2. It does (a really hacky job) at trying to parse the file name into meta data that itunes can use -- this is far from perfect (i get a lot of extra spaces, etc) but seems to work well enough for me. In case if I just made anyone cringe with that section of code, I did try to apologize in advance.

3. I then use AtomicParsley (free CLI program) to add the meta data to a new MP4 that is iTunes friendly.

4. I use a simple .js script called addToPlaylist.js (feel free to Google it) that then auto-adds the video file into iTunes. Because of step 3, iTunes knows that the file is a TV show, has a show name, epsisode name, etc.

5. Random temp file clean up at the end.

I barely know what I'm doing, but this seems to work pretty well for me. I keep all the secondary apps (handbrake, addtoplaylsit, atomicparsley) all the in the same folder to avoid directory issues.

That's a lot of info, but hopefully you can follow it. I plug in my iphone every morning and last night's daily show (in great quality btw) syncs automagically. Good luck!

jasonrn
12-13-2008, 03:09 PM
great! I already have videoredo TV Suite, which I use when I have time to edit commercials out, so I'll have to give it a try.

Thanks

jasonrn
12-29-2008, 11:13 AM
I finally got around to attempting this, but cannot find the addToPlaylist.js file on google. The link goes to a site that states it is "retired". Anyone have this? I know there are watch folders programs I can use, but don't want yet another service running all the time.

Jason

goodtrips
12-29-2008, 06:57 PM
hopefully this should work -- paste this into a text file and save as addToPlaylist.js

/*
File: addToPlaylist.js

*/


var iTunesApp = WScript.CreateObject("iTunes.Application");
var mainLibrary = iTunesApp.LibraryPlaylist;
var mainLibrarySource = iTunesApp.LibrarySource;

// get all playlists
var playlists = mainLibrarySource.Playlists;

var playlistStr = "Library"; // default to library if no library is supplied
var file;

if(WScript.Arguments.length == 2){
file = WScript.Arguments(0);
playlistStr = WScript.Arguments(1);
}else if(WScript.Arguments.length == 1){
file = WScript.Arguments(0);
}else{
WScript.Echo("Please supply the file name as an argument");
}


// loop through playlists
for (i = 1; i <= playlists.count; i++)
{
var playlist = playlists.Item(i);
if(playlist.name == playlistStr)
{
playlist.AddFile(file);
}

}