mixable

已关闭 已发布的 Jul 13, 2010 货到付款
已关闭 货到付款

Mixable is a set of scripts to easily post an iTunes playlist on the Internet. Use:

? ? ? ./mixable put "My Summer Mix"

to locate the iTunes "My Summer Mix" playlist, duplicate the playlist mp3 files, rename, re-tag, and zip them together, then upload the zip file and a web application to the Internet for you and your friends to stream and browse.

The web application is the playlist .zip archive and a simple Ruby Sinatra app suitable for deploying on Heroku. The .zip file acts as the playlist database -- all playlist metadata is extracted from the .zip file structure at runtime. A rack middleware allows serving a single .mp3 file from the .zip archive for preview and streaming. The streaming player uses a HTML5 <audio> element and simple controls (play/pause, next, previous, shuffle) and works on modern desktop browsers and mobile Safari (iPhone).

## Deliverables

Note: I am a very skilled programmer. I have some prototype code for this project but do not have the time to complete it myself. Feel free to ask about anything, I can offer a lot of guidance to how to build this application.

--

mixable

========

Mixable is a set of scripts to easily post an iTunes playlist on the Internet. Use:

? ? ? ./mixable put "My Summer Mix"

to locate the iTunes "My Summer Mix" playlist, duplicate the playlist mp3 files, rename, re-tag, and zip them together, then upload the zip file and a web application to the Internet for you and your friends to stream and browse.

The web application is the playlist .zip archive and a simple Ruby Sinatra app suitable for deploying on Heroku. The .zip file acts as the playlist database -- all playlist metadata is extracted from the .zip file structure at runtime. A rack middleware allows serving a single .mp3 file from the .zip archive for preview and streaming. The streaming player uses a HTML5 <audio> element and simple controls (play/pause, next, previous, shuffle) and works on modern desktop browsers and mobile Safari (iPhone).

This tool is only meant for music you have the right to distribute, and for limited distribution to peers.

Mixable is MIT licensed.

Install

-------

Mixable is packaged as a Ruby gem:

? ? ? gem install mixable

Usage

-----

? ? ? ./mixable preview|put|delete PLAYLIST [options]

? ? ? --help ? ? ? ? ? ? ? show this help message and exit

? ? ? --verbose ? ? ? ? ? show verbose event log

? ? ? iTunes Options

? ? ? --library=XML_FILE ? use the specified iTunes [url removed, login to view] file (default: ~/Music/iTunes/iTunes [url removed, login to view])

? ? ? Tagging Options

? ? ? --artistX=ARTIST ? ? set the artist for track X to ARTIST

? ? ? --titleX=TITLE ? ? ? set the title for track X to TITLE

? ? ? --artwork=JPEG_FILE set the album artwork to the specified jpeg file

? ? ? Internet Options

? ? ? --app=APP ? ? ? ? ? create and use APP on heroku (default: playlist_name)

? ? ? --password=PASSWORD protect the web app with a Basic HTTP Auth password (default: no password)

Examples

--------

Preview the resulting playlist track order and tags

? ? ? ./mixable preview "Party Time"

? ? ? 01. Outkast - B.O.B

? ? ? 02. MIA - Paper Planes

? ? ? 03. Beck - Get Real Paid

? ? ? 04. Jay-Z - Hard Knock Life

? ? ? 05. Unknown Artist - [url removed, login to view]

? ? ? ...

? ? ? [url removed, login to view]

? ? ? 64m 02s, 66Mb

Alter the resulting playlist tags without changing anything in iTunes

? ? ? ./mixable preview "Party Time" --artist5="Lil' Wayne" --title5="Bass Beat"

? ? ? 01. MIA - Paper Planes

? ? ? 02. Outkast - B.O.B

? ? ? 03. Beck - Get Real Paid

? ? ? 04. Jay-Z - Hard Knock Life

? ? ? 05. Lil Wayne - Bass Beat

? ? ? ...

Compile and upload a playlist

? ? ? ./mixable put "Party Time" --artist5="Lil' Wayne" --title5="Bass Beat" --artwork=~/Desktop/[url removed, login to view] --verbose

? ? ? * creating /tmp/party_time folder

? ? ? * copying ~/Music/iTunes Music/MIA/Paper [url removed, login to view]

? ? ? * re-setting tags to artist: MIA, title: Paper Planes, album: Party Time, artwork: [url removed, login to view]

? ? ? * renaming to [url removed, login to view]

? ? ? * copying ~/Music/iTunes Music/Outkast/[url removed, login to view]

? ? ? ...

? ? ? * creating [url removed, login to view]

? ? ? * creating git repo and Sinatra application

? ? ? * pushing to [url removed, login to view]

**********************************************************

Engineering notes

Will use the 'plist' gem for parsing the iTunes playlist XML file. Metadata is read from the iTunes playlist, but written to the .mp3 files using the 'ruby-mp3info' gem. 'rubyzip' is used for creating a zip archive.?

The resulting mp3 metadata and file names are cleaned and normalized.? Only track number, artist, title, album (from playlist name) and artwork tags are present. The files are renamed according to a pattern: [url removed, login to view]

The web application is a simple 'sinatra' app. It is a generic app that works with any .zip file of MP3s in the public/ folder. It serves the .zip file for download, but also introspects the .zip contents upon startup to build the track list and player.

Some prototype code already exists.

PHP

项目ID: #3570115

关于项目

远程项目 活跃的Aug 4, 2010