A Python UPnP Media Server
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
John-Mark Gurney 312d124260 switch to using tabs instead of spaces... 19 years ago
docs branch the files into a main line branch.. I should of done this 19 years ago
xml branch the files into a main line branch.. I should of done this 19 years ago
ConnectionManager.py switch to using tabs instead of spaces... 19 years ago
ContentDirectory.py switch to using tabs instead of spaces... 19 years ago
DIDLLite.py switch to using tabs instead of spaces... 19 years ago
MediaServer.py branch the files into a main line branch.. I should of done this 19 years ago
README add my email address to my copyright lines.. 19 years ago
SSDP.py switch to using tabs instead of spaces... 19 years ago
browse-zms.py switch to using tabs instead of spaces... 19 years ago
cdsclient switch to using tabs instead of spaces... 19 years ago
connection-manager-scpd.xml branch the files into a main line branch.. I should of done this 19 years ago
content-directory-scpd.xml branch the files into a main line branch.. I should of done this 19 years ago
pymediaserv go to tabs.. 19 years ago
root-device.xml branch the files into a main line branch.. I should of done this 19 years ago
upnp.py switch to using tabs instead of spaces... 19 years ago
xmlpretty switch to using tabs instead of spaces... 19 years ago

README

This code was abandoned by Tim Potter.
It is licensed under the MIT license at:
http://opensource.org/licenses/mit-license.php

As I should be getting my D-Link DSM-520 today, I need a UPnP Media
Server that I could use to stream data with. I tried one, but it had
issues running under FreeBSD's Linux emulation, so I found this code
that was was a good framework.

After a few days, I have the code working sucessfully with Intel's
Media Control Point, and Intel's Media Renderer. I have streamed both
mp3's and wmv's to the renderer. They are good tools for testing and
available at:
http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/upnp/index.htm

I have added a number of new features:
Don't bind the UDP socket to the multicast address, so replies
go out on our local IP.
Send out notify requests when we register the services with SSDP.
Send out byebye notifications when we are shutting down.
Randomize the UUID for the server (this should be part of the
saved state).
Randomize the port, or optionally set it on the command line.
Teach ContentDirectory.py the basics on handling Containers and
generic browse support. You can addItem and addContainer, which
each return either respective ObjectID.
We already support partial chunking of responses, but we don't yet
support filtering or sorting.

Either make a directory media and put the files there, or make a symlink
named media to your media files. Either will work. Run it as:
./pymediaserv <localip> [ <http server port> ]

Good Luck!

John-Mark Gurney <gurney_j@resnet.uoregon.edu>