Unnatural solutions
August 8, 2004 | Comments OffOnce in a while I find myself with Mac envy. iDVD is something I really wish existed for PC, only because it seems genuinely QA’d unlike all of the PC options I’ve tried, but I digress. Recently I’ve been lusting for a way to make Windows iTunes talk to the Tivo. Mostly because I just want to point tivo at a playlist and let it play, and I don’t want to sync playlists manually.
This weekend I spent a great deal of time finally coercing them to talk. It’s been a long journey that has involved various kernel modules along the way, but that’s all in the past. The first working solution I had involved using Net::DAV::Server, Filesys::Virtual::DAAP, davfs, coda, and byRequest. This worked but byRequest tries to decode the id3 on every mp3 when it opens a directory, and since this is happening over a network, I had to remove that code, but it *worked*, I just didn’t have ID3 information. That led me to the second (and third) solutions.
I hacked at the TiVo.pm module released by TiVo themselves to add support for a new TiVo::Container::DAAP class, and a TiVo::Item::MP3::DAAP object. In the first version I used HTTP::Daemon, which worked fine, but I rewrote it using POE::Component::Server::HTTP as a final solution.
I’m very happy with how it worked out. The only real problem I have now is that the link between the box running the proxy and the iTunes computer is too slow which I’ll solve either by finally running ethernet or getting an 802.11b bridge, but it’s entirely functional.