It’s the Open Sourced SharkAttack, yeah!

I’ve been working on my project called “SharkAttack” for awhile. It started out as a simple little Adobe AIR app to download new music from RSS feeds. Soon after, I rewrote the whole thing as a service with Node.js. And then, just lately I rewrote some of THAT to use Grunt.js.

Anyway, the aim of SharkAttack is to start with a list of your favorite music news feeds that will occasionally offer free music. The service will then dive into these rough seas and download the latest tunes a few times a day. It will deal with RSS feeds, webpages, YouTube, Soundcloud, Vimeo, and plain old MP3.

SharkAttack will convert, transcode, and track the songs. It publishes a playlist for both my personal website and for my radio show every Wednesday at 1pm EST on the awesome under the leadership of the even awesomer Vicky Ryder.

In the past few weeks, I authored some admin pages to add/remove/edit your sources, review logs, and edit my weekly show script. Additionally, I added some personal radio functionality – meaning that you open up a page on your local network and the server will stream a personal radio station based on the songs that SharkAttack has for you at that moment.

I’m at version 1.9 right now. As I approach 2.0, I’d like to get the streaming solid (right now it’s a bit iffy) and get some really personal stuff in there like reading of your Twitter/Facebook messages as “radio ads” between songs.

It’s great to take a project like this all the way to something I enjoy using (or listening to). It never would have happened without my weekly radio slot on Codebass to keep making the SharkAttack better. And now I think it’s got a few additional purposes as I keep adding functionality.

Here’s a rundown of the tech I used:

  • Based on Node.js
  • Express.js for radio streaming and administration
  • MongoDB for maintaining data (I use MongoHQ)
  • Twitter Bootstrap and AngularJS for administration and radio pages
  • D3.js for daily download charts
  • GruntJS for media library and playlist building tasks (run as cron jobs)
  • FFMPEG and Youtube-DL for video conversion

Anyway – it’s out there on GitHub land now. It’s pretty fine tuned for my purposes, but maybe it’ll help someone else, either as a whole or with the code torn apart in bits.

Leave a Reply