1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

iTiVo (TiVo -> mac -> iPhone)

Discussion in 'TiVo Home Media Features & TiVoToGo' started by Yoav, Nov 6, 2008.

  1. May 7, 2009 #461 of 741
    Marconi

    Marconi TiVo Junkie

    444
    0
    Sep 8, 2001
    Page, AZ USA
    Because free space was running low, some months ago I transferred (using TiVo's built-in Multi Room Viewing function) some episodes of a series from DVR-A to DVR-B (deleting them from A). I have since used iTiVo to download all the episodes from both DVR-A and DVR-B with the showname.txt metadata file option selected.

    For the episodes downloaded from DVR-B, the showname.txt files have only startTime and stopTime, and these appear to be the time of the transfer from DVR-A to DVR-B.

    The episode title and synopsis are there on DVR-B -- I can see them in the Now Playing program info, but they did not get inserted into the metadata files. Perhaps after the transfer from DVR-A, these data are in a form that iTiVo does not recognize. (Or it may be that transferring from a TCD540040 to an older model, a TCD24080, is the problem. Maybe a TCD24080 does not properly recognize all the metadata from a TCD540040. (That does not explain why the episode title and synopsis, which the older TCD24080 obviously does understand, didn't get put into the files.)

    I know that some metadata are lost when transferring from one DVR to another (that's been my experience). But I'd think that episode title and synopsis should still be available to iTiVo.

    Would anyone who has multiple DVRs care to confirm this problem? use iTiVo to download a show with the optional showname.txt metadata file. Transfer that same show to another DVR and repeat the download. Rename the first downloaded files or download the second to a different directory so the first won't be overwritten by the second. Compare showname.txt files. I'd be interested in your results (include DVR models numbers).
     
  2. May 7, 2009 #462 of 741
    AudioNutz

    AudioNutz New Member

    318
    0
    Nov 9, 2008
    I can confirm. It's really rare, but I've had it happen 3 times. I seem to recall that it was with a TV series that was discontinued.

    I've long since deleted these three problem shows, so I can't do your test.
     
  3. May 7, 2009 #463 of 741
    Marconi

    Marconi TiVo Junkie

    444
    0
    Sep 8, 2001
    Page, AZ USA
    This is not a bug but annoying nonetheless. When iTivo starts and there is a saved queue (the 1.7.7 beta has this feature) then items cannot be removed from the queue until iTiVo connects -- the 'Remove' button will not activate after a show in the queue is clicked.

    Once a connection is initiated, then the queue items can be removed; the Remove button will activate when a queue item is clicked.
     
  4. May 7, 2009 #464 of 741
    Marconi

    Marconi TiVo Junkie

    444
    0
    Sep 8, 2001
    Page, AZ USA
    What is curious is that the Info button in iTiVo does show the episode title and synopsis in the drawer off to the side. So, the data are there, iTiVo CAN read them, but fails to put them into the showname.txt file. Sounds like a (minor) bug.

    Again, to replicate the bug: transfer a recording from one DVR to another. From that second DVR, download the show with iTiVo, including the .txt metadata file. The txt file will have only startTime and stopTime.
     
  5. May 7, 2009 #465 of 741
    Yoav

    Yoav New Member

    1,048
    0
    Jan 12, 2007
    copy-protected filter is in the latest beta.

    As to the other feature requests: file naming is currently not supported by iTiVo. You certainly have the power to manually do it, or even automatically do it via the 'run after download' advanced option. However, for now, iTiVo doesn't support a 'pattern for filenames' nor options to mess with them. It may in the future, but it's very low priority for me.

    Marconi: I don't really know what causes the bug you're complaining about. It's such a fringe use involving transfers among multiple-tivos that I seriously doubt anyone else has or will ever see this bug. I'd be happy to fix it if you can track down and debug what is going on, but I don't plan on buying another tivo to debug this.
     
  6. May 7, 2009 #466 of 741
    aindik

    aindik Well-Known Member

    35,116
    71
    Jan 23, 2002
    Philadelphia...
    I transfer the Daily Show to my phone every night. ComSkip works great most of the time, but it misses the "moment of zen" at the end of the show most nights. Last night, it missed the Dan Rather segment. It just cut that segment off early.

    I post this not to criticize, but maybe it will help in the debugging to see exactly what type of things are being missed.
     
  7. May 7, 2009 #467 of 741
    AquaX

    AquaX New Member

    54
    0
    Mar 4, 2003
    Fremont, CA
    I think it's more going to be a ComSkip problem than an iTiVo problem, but I as well, have noticed lots of ComSkip issues with the Daily Show in particular. Something about how ComSkip attempts to detect commercials gets messed up with the Daily Show.
     
  8. May 7, 2009 #468 of 741
    aindik

    aindik Well-Known Member

    35,116
    71
    Jan 23, 2002
    Philadelphia...
    Is ComSkip not written by Yoav as part of iTiVo? If not, then I apologize. No need to post what I did.
     
  9. May 7, 2009 #469 of 741
    Fofer

    Fofer XenForo Rocks! TCF Club

    82,147
    307
    Oct 29, 2000
  10. May 7, 2009 #470 of 741
    Yoav

    Yoav New Member

    1,048
    0
    Jan 12, 2007
    Yep indeed I just push out a comskip program with iTiVo (as well as mencoder and tivodecode and whatnot) .. I didn't write the programs nor do I support them.

    a minor correction: the comskip in iTiVo is actually based on a fairly old release of comskip (http://code.google.com/p/etv-comskip/) that was nicely ported to the mac. The current comskip codebase doesnt build cleanly on macs, and depends on a lot of external libraries (to support stuff like closed caption detection, and processing h.264 video). It seems like the maintainer of etv-comskip hasn't made changes to his source code in several months.. so comskip may end up remaining 'the old one' for a while...


    A bit more about comskip: it seems to work a LOT better if you have recorded at the best possible quality. Also, there are lots of values and settings that you can use to tweak it to perform differently. I currently use the recommended defaults. The problem with changing it is that while it will more successfully detect the 'end of the daily show' issue that you have, it will then become less successful at detecting other stuff... If you feel like you want to mess with it, you can find the configuration in
    Code:
    Applications/iTiVo.app/Contents/Resources/comskip.ini
    . Make sure to back up your configuration AND if you find one you like, SAVE IT SOMEWHERE ELSE TOO!! (updates to iTiVo will wipe your config)
     
  11. May 7, 2009 #471 of 741
    aindik

    aindik Well-Known Member

    35,116
    71
    Jan 23, 2002
    Philadelphia...
    When everything is digital, there is only one quality. ;)

    Thanks for all of your information and all of your hard work.
     
  12. Marconi

    Marconi TiVo Junkie

    444
    0
    Sep 8, 2001
    Page, AZ USA
    I have a Series 2 TiVo DVR which has been expanded the maximum number of times it can be. It has two, small drives that I'd like to replace before they fail. The problem is, it has LOTS of recordings -- some going back years -- that need to be preserved. None of the current Mac tools permits me to upgrade these already expanded drives to larger ones or to upgrade to a single, larger drive AND preserve recordings. To upgrade this DVR I will have to remove the recordings, do the upgrade then put the recordings back.

    My initial plan called for temporarily transferring all its recordings to other S2 TiVo DVRs. (I have others.) Then I came across a reference to "putting back" recordings with pyTiVoX and the plan changed. I started downloading episodes of various shows using iTiVo and put them back with pyTiVoX. It worked.

    It is my intention to download all the files on that S2 DVR, upgrade it to a single, larger drive, then transfer back all the removed recordings.

    In my tests, the only problem was that, in putting them back, the recordings took on the date of their download via iTiVo.

    Per Yoav's advice, I am using "Decrypt" and adding the optional showname.txt metadata file. So I had the original air date, the date the recording was made by TiVo and all that. At first, then, I was hand editing the showname.txt file, adding the date of the recording to the episode name thus ensuring that my wife would know the proper order in which to watch the episodes of her soap opera.

    For one series, I added the episode number to the episode title. Like adding the date, it was time intensive and when viewing the shows, you'd have to search the Now Playing list to find the next one to watch, since many recordings had the same date. Ideally, a better solution would be to put them back into TiVo in the correct order, and that would involve changing the creation date of the downloaded files on my Mac.

    Since transferring back to the DVR via pyTiVoX gave the recording the date of the show's download by iTiVo, all I really needed to do was change the recordings' created/modified dates on my Mac before uploading it back to the DVR. I modified the creation date of a few recording files and, when transferred back to TiVo, the recordings showed the date of the original and were in the correct order as a result.

    Now, many of you probably don't know how to change a file's creation / modification dates or don't have the tools. To do it by hand, as I did for the first few test recordings, would again be time intensive. So I used AppleScript to create a droplet application that will do it for me. It works like this...

    Using, as I am, Decrypt to create a showname.mpg file, plus the optional showname.mpg.txt file, I have the date-of-recording datum. It's on the first line of the '.txt' file. So, all that is necessary is to select a showname.mpg file together with its matching showname.mpg.txt file and drag them to the droplet app. The script will read the recording date from the first line of the metadata text file and change the creation and modification dates of both dropped files to that date.

    pyTiVoX will see that date and the recordings, once back on TiVo will sort into their proper order by date.

    Another benefit: for some series, the episodes I have were not all recorded in the order of their original airing. Either the broadcaster showed them out of order or we missed one and had to get the missed episodes later. In either case, by adjusting the first line of the txt file for that episode, then dropping onto my droplet, I can put the episodes into the order in which they originally appeared.

    Another datum in the txt file is "originalAirDate" so you may wonder why I am not using that date instead of the date of the recording by TiVo. The answer is that, sometimes, there are NO episode-specific data available. All info in the txt file is generic. When that happens, the originalAirDate parameter is the date of the series premier, and that date will be the same for every episode lacking episode-specific data -- not nearly as helpful as the date it was recorded. With the date of the recording, and comparing that to the episodes before and after, it's pretty easy to use TV.com and such to identify the actual episode. You can even change the txt file's generic description and episode title to contain the proper synopsis and such.

    Anyway, the bottom line is this: Using iTiVo, my droplet and then pyTiVoX, I now have storage for my TiVos limited only by how many drives I want to buy. No need for an official "DVR Expander." I'm recording movies and saving them off line until I decide to watch them. I've set up Season Passes for a couple of series I'd like to see in their entirety. I'll store the episodes off-line until I have them all, then transfer them back as needed.

    I could, of course, be doing this with just iTiVo and pyTiVoX (Thanks, Yoav!) but the droplet date changer makes the sorting problem go away. For those of you wishing to do something similar, here's the code for the date-changing droplet... (Watch out for line breaks.)
    Code:
    -- Droplet for Changing the Creation date of 
    -- Dragged-on TiVo Recording Files
    
    -- Save this as an application bundle in AppleScript Editor.
    
    -- This droplet was designed to have an iTiVo mpg file plus its 
    -- matching mpg.txt metadata file dragged onto it in pairs. 
    --
    -- When this is done, the date of the original recording is read 
    -- from the text file and the creation/modification dates of both 
    -- files are changed to that date. This ensures that when the 
    -- recordings are transferred back to TiVo using pyTiVoX, the 
    -- recording dates are correct.
    
    -- Note that this was designed for this one, specific purpose and 
    -- any other use of this droplet is bound to disappoint.
    --
    -- DISCLAIMER: No warranty is implied, use at your own risk, 
    -- discontinue use if redness develops, etc. 
    
    on open dropped_items
    	set newdate to ""
    	--choose the one which is the text file
    	repeat with i from 1 to the count of dropped_items -- which ought to be 2
    		set this_item to (item i of dropped_items)
    		set the item_info to info for this_item
    		set filename to name of item_info
    		if filename ends with ".txt" then
    			set fileData to read this_item
    			set datetext to paragraph 1 of fileData
    			-- line one looks like this: "time : YYYY-MM-DDTHH:mm:ssZ"
    			set theyear to text 8 through 11 of (datetext)
    			set themonth to text 13 through 14 of (datetext)
    			set theday to text 16 through 17 of (datetext)
    			set hh to text 19 through 20 of (datetext)
    			set mm to text 22 through 23 of (datetext)
    			set newdate to theyear & themonth & theday & hh & mm
    			exit repeat -- found the date, no need to check the other dropped file
    		end if
    	end repeat
    	if newdate is not "" then
    		repeat with file_ in dropped_items
    			set file_ to POSIX path of file_
    			do shell script "touch -t " & newdate & " " & quoted form of file_
    		end repeat
    	else
    		display dialog ("No date found in these files!")
    	end if
    end open
    
    I presume that the droplet will work just as well for those of you not using "Decrypt" as the download format. If you're converting for iPhone, the recording date may be sufficient to keep them in order. Just be sure to also create the metadata txt file (see the iTiVo prefs) so you can use the droplet. But, just in case, I'm going to make a version of the droplet that will insert the recording date into the mpg file's name, changing:

    Series Name - Episode name.mpg
    Series Name - Episode name.mpg.txt
    to
    Series Name - date Episode name.mpg
    Series Name - date Episode name.mpg.txt

    I hope others find this useful.
     
  13. Marconi

    Marconi TiVo Junkie

    444
    0
    Sep 8, 2001
    Page, AZ USA
    As promised, here's a droplet to add the date a recording was made by TiVo to a downloaded recording's file name. Note that it requires the metadata text file in order to work.
    Code:
    -- Droplet for Adding the Recording Date to Names
    -- of Dragged-on TiVo Recording Files
    --
    -- Save this as an application bundle in AppleScript Editor.
    --
    -- This droplet was designed to have an iTiVo mpg file plus its 
    -- matching mpg.txt metadata file dragged onto it in pairs. 
    --
    -- When this is done, the date of the original recording is read 
    -- from the text file and the date is inserted into the file names
    -- of both files after the series name and before the Episode name.
    -- This makes it easier to watch recordings in the right order.
    --
    -- Note that this was designed for this one, specific purpose and 
    -- any other use of this droplet is bound to disappoint.
    --
    -- DISCLAIMER: No warranty is implied, use at your own risk. 
    -- Consult a doctor if erection lasts for more than four hours. 
    
    on open dropped_items
    	set RecDate to ""
    	--choose the one which is the text file
    	repeat with i from 1 to the count of dropped_items -- which ought to be 2
    		set this_item to (item i of dropped_items)
    		set the item_info to info for this_item
    		set filename to name of item_info
    		if filename ends with ".txt" then
    			set fileData to read this_item
    			set datetext to paragraph 1 of fileData
    			-- line one looks like this: "time : YYYY-MM-DDTHH:mm:ssZ"
    			set RecDate to text 8 through 17 of (datetext) & " "
    			exit repeat -- found the date, no need to check the other dropped file
    		end if
    	end repeat
    	if RecDate is not "" then
    		repeat with i from 1 to the count of dropped_items -- which still ought to be 2
    			set this_item to (item i of dropped_items)
    			set the item_info to info for this_item
    			set original to name of item_info
    			set foo to offset of "-" in original
    			set changedname to text 1 through (foo + 1) of original & RecDate & text (foo + 2) through end of original
    			-- 	display dialog ("Renaming " & original & " to " & changedname)
    			tell application "Finder"
    				set the name of the this_item to the changedname
    			end tell
    			
    		end repeat
    	else
    		display dialog ("No date found in these files!")
    	end if
    end open
    
     
  14. Marconi

    Marconi TiVo Junkie

    444
    0
    Sep 8, 2001
    Page, AZ USA
    iTiVo 1.7.7b3

    In the txt metadata file, when created, some data use an equals sign as a delimiter:

    seriesID = SH001189
    displayMajorNumber = 12
    callsign = KPNX

    These all need to be colons.

    Secondly, the "seriesId" parameter is case sensitive -- the 'd' needs to be lower case to have the parameter be recognized when passed back to a TiVo DVR by pyTiVoX. The "I" is the only upper-case character in this datum label.
     
  15. Yoav

    Yoav New Member

    1,048
    0
    Jan 12, 2007
    Oh hey, I suck...

    Thanks for catching it ( the bug was a little more insidious -- seriesId was correctly set if present in the xml, but I tried to hack it in when it wasn't.. and that was where the '=' and uppercase cropped up..). Fixing and should make it into the next release...
     
  16. Marconi

    Marconi TiVo Junkie

    444
    0
    Sep 8, 2001
    Page, AZ USA
    I'd bill you for the hours wasted figuring out what was wrong but then you'd probably bill me for the development time. ;-)

    I'm good if you are...
     
  17. Marconi

    Marconi TiVo Junkie

    444
    0
    Sep 8, 2001
    Page, AZ USA
    iTiVo 1.7.7b3, pyTiVoX 1.2

    While downloading recordings with iTiVo and uploading some of those same recordings to other DVRs, I've noticed something interesting about the metadata txt file which iTiVo generates. If the recording is extended, either starting early or ending late, the metadata file will contain data on the programs preceding and / or following.

    That is, if I start the recording of an episode early by, say, a minute (recording options on TiVo) then in the metadata file, there will be extraneous data about the show which preceded the recorded episode. Likewise, if I extend the recording, there will be data about the following show appended to the episode's actual metadata.

    This wouldn't be a problem if it didn't screw up the show data sent to TiVo by pyTiVoX when the showname.txt file is used as-is. (It also screws up the show Info shown by iTiVo.)

    Based on behaviors I've observed, here's what I think happens. iTiVo scans the metadata and uses the first version of any parameter it encounters. This is what it puts into the "Info" drawer off to the side. This makes for an interesting mix when, as I encountered, a soap opera is preceded by a news show. iTiVo shows Info that includes a genre of "News" with the first air date of that news program, together with the name of the news show, but then goes on to describe the soap opera episode accurately.

    pyTiVoX, by contrast, seems to scan the metadata from the txt file and use the last version of any datum it encounters. So, if that same soap opera was followed by a movie, and the recording was extended two minutes, then when that soap's metadata are seen by the TiVo, the description shows a movie and assorted non-soap actors.

    Now, I don't think TiVo should be including metadata for shows preceding and / or following, just because I extended a recording. But it happens, and it results in problems with iTiVo and pyTiVoX. So... what can be done about it?

    I've been trimming the showname.txt files by hand to remove extraneous data. Might iTiVo be made to discard the extra stuff for us (for me)?

    Just for fun, and because I have multiple Series 2 DVRs, I recorded the same show today five times so as to compare the resulting metadata when I download them and make them available for upload via pyTiVoX.

    One recording started and stopped on time. This was my 'control' version. This should show me the normal, non-extended metadata.

    The second recording started 1 minute early but stopped on time. Metadata for the show preceding it appears in the txt file before the proper data.

    The third started on time but was extended one minute beyond normal. Metadata for the show following it are appended to the text file. (Actually, inserted before the end of the proper metadata.)

    The fourth started one minute early and was extended by one minute. It has extra data both before and after the proper data.

    The last started five minutes early and went 5 minutes long. Its metadata file is the same as the one extended by only one minute in each direction.

    When the metadata file(s) generated by iTiVo are used, unedited, to provide data for the same recordings to go back to a DVR, it results in bad data -- especially if the recording was extended. In that case, the show is totally misrepresented by pyTiVoX, as shown on the receiving TiVo DVR.

    I've put up a web page showing the metadata files for four of the recordings (the 5-minutes-before-and-after is essentially the same as the 1-minute-before-and-after). You can see the extra metadata and some images of the incorrect iTiVo and TiVo displays that result.

    Clearly, the problem is with TiVo. Nonetheless, is there anything that can be done with our tools (iTiVo and pyTiVoX) to compensate?
     
  18. Yoav

    Yoav New Member

    1,048
    0
    Jan 12, 2007
    I've been scratching my head as to what to do about this. the pytivo data is simply ripped out of the xml file which comes out of the tivo file. If there's 'better logic' that can be applied, it needs to be done to the xslt processor: http://code.google.com/p/itivo/source/browse/trunk/pytivo_txt.xslt

    However, it's not really clear what to do (it seems like time is always the first entry and is never repeated twice in a single show, so it might be possible to split things up based on that token I dunno).

    anyways, it seems like you're hitting the 'maybe you should write a script to fix up these things' or 'don't record multiple shows into one file' -- although to be fair you do sometimes need to extend recordings by a few minutes.. sigh...

    If you can figure out a 'correct' clean fix I'll be happy to take a code patch :)
     
  19. wmcbrine

    wmcbrine Ziphead

    10,368
    22
    Aug 2, 2003
    I've noticed data from multiple programs in .TiVo files as well. However, I don't think it happens if you view the Now Playing list XML. (Or does it?) Maybe that would be a better source?
     
  20. Marconi

    Marconi TiVo Junkie

    444
    0
    Sep 8, 2001
    Page, AZ USA
    The extra metadata appear in the XML version as well.
     

Share This Page