Here’s some other stuff I’ve written, mostly to “scratch an itch” of one sort or another. I currently only have links to source code, but binaries for Mac OS X and/or Windows might be made available as I get around to it.
- bdarchiver (last updated 30 January 2015; tarball link)
I keep movies, TV shows, music, and other stuff on a server that shares it out to the whole house. I wanted to start an offsite archive to BD-R in case the server had issues. bdarchiver is a set of scripts to facilitate this kind of archival. If you don’t have a Blu-ray burner, it’ll also work with DVD-R (and even CD-R, but that’s probably too small to be practical at this point for a media library archive). The emphasis is on reliability, with verification of written media after it’s burned and the inclusion of error-recovery information to mitigate potential media issues down the road.
- StreamShifter 0.1 (last updated 19 July 2012)
We have DVRs so we can watch TV shows at our convenience. Wouldn’t it be nice to do the same thing with radio? Many radio stations provide live streaming audio, but they usually only let you play the same thing you could receive over-the-air. This set of scripts takes a Flash-compatible stream with AAC audio, records it at the times you select, and makes it available in two forms: (1) an HTTP live stream which you can play any time from the start of broadcast until the next recording comes up and (2) a podcast which you can play any time after the recording ends. An RSS feed is provided for the podcasts. Requires a webserver that serves up PHP, cURL, and FFmpeg.
- iTunes Playlist Exporter 1.0.3 (last updated 22 March 2012)
I have an Oakley Thump II (music player in a pair of sunglasses, basically) that I wanted to load with music from Genius playlists in iTunes. iTunes doesn’t provide an easy way to dump a playlist (or any other group of songs) into a directory; it’s intended that you’d sync music onto your iDevice instead. This program queries your iTunes install for available playlists and copies the playlist you select into the directory of your choice. Since the Thump has limited storage (256 MB for mine…from what I’ve heard, the guts of it aren’t too different from the iPod shuffle that was being sold around the same time), all files are reencoded according to the format and bitrate settings you’ve set within iTunes for importing music. My collection is mostly 256 kbps AAC, but with a fair percentage of MP3 files at various bitrates; I have iTunes set so that this program will cut everything down to 128 kbps AAC for export, which is good for maybe three or four runs around the neighborhood before I have to generate a new playlist. :-)An installer is also available for this program. iTunes 10.5 or later and .NET Framework 3.5 are required. One caveat: if you’re using iTunes Match, iTunes won’t reencode music that’s only stored in iCloud. You’ll want to make sure your playlist is downloaded to your computer before you try to export it with this program.
- tagger 0.2 (last updated 2 October 2006)
I wanted a tagger that would handle the different formats of audio files in my collection. It needed to be a command-line app so I could easily mass-tag lots of files with some shell scripts. I never found something that worked the way I wanted it to work, so I threw this together. It’s basically a wrapper for TagLib and FAAD2. It handles MP3 (ID3v1 and ID3v2), Ogg Vorbis, FLAC, and AAC (iTunes tag format). You can view existing tag info, change/create tags, and (where applicable) extract/insert cover art. It’s nice to finally have cover art on all of the files on my iPod. :-) This version fixes the endianness and word-size issues that kept the original release from working properly on AMD64 and PowerPC systems. I’ve built and tested the code on x86 (Linux), AMD64 (Linux), and PowerPC (Mac OS X with MacPorts), and it now appears to be working on all three. It should work on other architectures and OSes as well. I had the previous version running on Windows with the help of Cygwin, but haven’t tried building it on Windows lately.