MyPhone: Share your iPhone’s music collection via WiFi
Released in late 2006, the Zune mp3 player was Microsoft’s attempt to establish itself in the portable music player market. This market has been dominated by Apple’s iPod since the initial release of the iPod in 2001.
The Zune was similar to the iPod in terms of price, size and capacity. However, it offered a unique wifi-based song sharing feature. Zune owners could “squirt” a song to another Zune owner. Unfortunately, the shared song was mired in DRM and could only be played three times before being inactivated. The feature was not a hit and the Zune failed to capture a significant share of the market.
Many called the Zune’s overly-limited wifi song sharing feature a missed opportunity. Apple’s new iPhone has also wifi support but it offers no access to music via wifi. I set out to fix this.
To address this, I’ve written an application called MyPhone. It runs on the iPhone and serves up the contents of the iPhone’s music library to any web browser on the same network. Using this application, you can listen to all of the music stored on your iPhone from another computer on the same wifi network. For example, you could take your iPhone to work and listen to its music library on your desktop or you could even listen to your music collection from another nearby iPhone.
Using MyPhone is very simple to use once it is installed and running:
- From your desktop computer or other internet-capable device, point your web browser at http://your_iphone_address:1111/ . The “your_iphone_address” part should be replaced with the current ip address of your iPhone. You can find this by clicking on the wifi settings page on the iPhone.
- Browse the list of music available on the iPhone. Music is sorted by Artist and Album.
- Click on any song to listen to it in your web browser.
Unfortunately, installing applications on the iPhone is still very complicated at this point. If you are not experienced with iPhone hacking, you might want to wait until better tools are created to install iPhone applications. But if you want to try, here are the basic steps:
- Follow instructions on the web to get ssh running on your iPhone.
- Install iphone-binkit and python on your iPhone.
- Download MyPhone and copy it to /usr/local/bin on your iPhone.
- Log into your iPhone via ssh and run MyPhone with this command:
- nohup python /usr/local/bin/MyPhone.py&
- Test out MyPhone from your desktop or laptop!
Warnings:
- MyPhone is written to encourage further development of applications that allow legal use use of your personal music collection with portable devices. It is not a fully-polished application and is meant for experienced users only. It is not meant to be a piracy tool, so please don’t use it for that.
- MyPhone is NOT secure and is meant for your own personal use and experimentation. Be careful what wifi networks you join when MyPhone is running.
- MyPhone is released as open source under the GNU GPL 2.0 license.
Pictures:

Picture: Listening to the iPhone’s music collection on a desktop via a wifi connection.

Picture: Wireless sharing of a music collection between two iPhones on the same wifi network.
19 Comments so far
Leave a reply
GUI & you will have newbie success
[…] Comparte la colección de música en tu iPhone a través de WiFi. […]
# Log into your iPhone via ssh and run MyPhone with this command:
* nohup python /usr/local/bin/MyPhone.py&
** now is this command within WinSCP within the terminal? or is this command in start run? or where because I error “Connection has been unexpectly closed: Server Sent Command Exit Status 2″ in the program terminal. help please
/usr/bin$ nohup python /usr/local/bin/MyPhone.py
-sh: line 134: /usr/bin/nohup: Permission denied
HELP please…
why do i get this error.
Ok i think i’m getting closer. Someone please help me out.
/usr/bin$ nohup python /usr/local/bin/MyPhone.py
Traceback (most recent call last):
File “/usr/local/bin/MyPhone.py”, line 330, in
httpd = BaseHTTPServer.HTTPServer((”", 1111), ReqHandler)
File “/usr/lib/python2.5/SocketServer.py”, line 330, in __init__
self.server_bind()
File “/usr/lib/python2.5/BaseHTTPServer.py”, line 101, in server_bind
SocketServer.TCPServer.server_bind(self)
File “/usr/lib/python2.5/SocketServer.py”, line 341, in server_bind
self.socket.bind(self.server_address)
File “”, line 1, in bind
socket.error: (48, ‘Address already in use’)
Sorry. I didn’t specify the problem. I use the command prompt in WinSCP to execute the /usr/local/bin/MyPhone.py command and get this error:
/usr/bin$ nohup python /usr/local/bin/MyPhone.py
Traceback (most recent call last):
File “/usr/local/bin/MyPhone.py”, line 330, in
httpd = BaseHTTPServer.HTTPServer((””, 1111), ReqHandler)
File “/usr/lib/python2.5/SocketServer.py”, line 330, in __init__
self.server_bind()
File “/usr/lib/python2.5/BaseHTTPServer.py”, line 101, in server_bind
SocketServer.TCPServer.server_bind(self)
File “/usr/lib/python2.5/SocketServer.py”, line 341, in server_bind
self.socket.bind(self.server_address)
File “”, line 1, in bind
socket.error: (48, ‘Address already in use’)
if anyone can help, i’d really appreciate it.
Thank You
I’m a little confused at this part: 4. Log into your iPhone via ssh and run MyPhone with this command:
* nohup python /usr/local/bin/MyPhone.py&
Where do I put in that command? I’m using WinSCP as my SSH client.
Also, when you said to copy myphone.py into /usr/local/bin, did you mean /usr/bin? My phone didn’t have a /usr/local directory.
Thanks!
works great!
w/ python on the iphone possibilities are endless..
Got the same problem as Art. Can anyone pls help us out?
Just to clarify:
Ran Jailbreak.
Installed binkit v0.06 to /bin. Gave all files x perms.
Installed python according to the instructions here: http://iphone.fiveforty.net/wiki/index.php/Webshell. Gave all files x perms.
Copied MyPhone.py to usr/local/bin and gave it x perms.
Ran nohup python /usr/local/bin/MyPhone.py& in WinSCP.
At that last part, I get “Connection has been unexpectedly closed: Server Sent Command Exit Status 2″.
@tieum. how did u get it installed and running. did u install python on the /bin/local file directory or to /bin ?
When I execute the command i still get this:
Traceback (most recent call last):
File “/usr/local/bin/MyPhone.py”, line 330, in
httpd = BaseHTTPServer.HTTPServer((”", 1111), ReqHandler)
File “/usr/lib/python2.5/SocketServer.py”, line 330, in __init__
self.server_bind()
File “/usr/lib/python2.5/BaseHTTPServer.py”, line 101, in server_bind
SocketServer.TCPServer.server_bind(self)
File “/usr/lib/python2.5/SocketServer.py”, line 341, in server_bind
self.socket.bind(self.server_address)
File “”, line 1, in bind
socket.error: (48, ‘Address already in use’)
@Ravi. ANy luck yet?
Nope. I screwed something up on my phone while playing around with this and now even SSH doesn’t work (just “connection refused”). I may have to do a restore and start over. In any case, I’ll be busy these next few days and idk how much time I’ll have to work on this. GL to you though!
I got it
nohup python /usr/bin/MyPhone.py
(set permissions to everything)
Then you’re good
Set perms to everything on what file? MyPhone.py? I’ll try it, thanks!!! What method did you use to install Python? This one? http://iphone.fiveforty.net/wiki/index.php/Webshell
No. I used these instructions.. Just download python and install it in the instructed folder that it’s designated to go which i believe is /usr/bin or somethin like that. ignore local. cause local is just the home directory of the iphone.
also when you connect it’ll say ABOUT - close screen error but that FINE! that’s what you want, when you see that error, open up the browser and point it to the iphone address http://(Iphone_Address):1111/
and wait like 10-20 seconds and boom you see the list
Got it! Thanks for the help!!!
Great.. Glad I could help.