|
@@ -2,18 +2,51 @@ This code was abandoned by Tim Potter. |
|
|
It is licensed under the MIT license at: |
|
|
It is licensed under the MIT license at: |
|
|
http://opensource.org/licenses/mit-license.php |
|
|
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: |
|
|
|
|
|
|
|
|
I got a D-Link DSM-520 but I needed a UPnP Media Server to stream data |
|
|
|
|
|
with. I tried one, but it had issues running under FreeBSD's Linux |
|
|
|
|
|
emulation. Since I know Python, I went looking for a python server |
|
|
|
|
|
and found this code. The code was a good framework, so I expanded upon |
|
|
|
|
|
it. |
|
|
|
|
|
|
|
|
|
|
|
Tested devices and/or programs: |
|
|
|
|
|
Intel's Media Control Point and Media Renderer |
|
|
|
|
|
D-Link DSM-520 |
|
|
|
|
|
|
|
|
|
|
|
The Intel tools are good for testing and are available at: |
|
|
http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/upnp/index.htm |
|
|
http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/upnp/index.htm |
|
|
|
|
|
|
|
|
I have added a number of new features: |
|
|
|
|
|
|
|
|
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> |
|
|
|
|
|
|
|
|
|
|
|
Ideas for future improvements: |
|
|
|
|
|
Understand ZIP files, so you can view images and listen to mp3s |
|
|
|
|
|
in the zip file. (ZipFile is there.) |
|
|
|
|
|
Possibly switch how the HTTP media server behaves, and instead |
|
|
|
|
|
of using static.File, have each object present a Contents |
|
|
|
|
|
function or something similar, to make understanding ZIP files |
|
|
|
|
|
easier. |
|
|
|
|
|
Autodetect IP address. |
|
|
|
|
|
|
|
|
|
|
|
v0.2: |
|
|
|
|
|
No longer require restarting to see new files/dirs in hierarchy. |
|
|
|
|
|
Add FSStorage which is a set of classes for handling filesystem |
|
|
|
|
|
objects, also handles updateID's. |
|
|
|
|
|
Make the root container customizable, so you don't end up with |
|
|
|
|
|
a single entry (like media) at the root. This lets us use a |
|
|
|
|
|
FSDirectory as the root and get auto-enumeration |
|
|
|
|
|
Support returning custom error codes, so that we can return 701 |
|
|
|
|
|
No such object among others. |
|
|
|
|
|
Support deleting items, so we can remove them when no longer on |
|
|
|
|
|
the file system. |
|
|
|
|
|
Make Containers a subclass of list. This lets use populate |
|
|
|
|
|
childCount properly. |
|
|
|
|
|
|
|
|
|
|
|
v0.1: |
|
|
Don't bind the UDP socket to the multicast address, so replies |
|
|
Don't bind the UDP socket to the multicast address, so replies |
|
|
go out on our local IP. |
|
|
go out on our local IP. |
|
|
Send out notify requests when we register the services with SSDP. |
|
|
Send out notify requests when we register the services with SSDP. |
|
@@ -26,11 +59,3 @@ I have added a number of new features: |
|
|
each return either respective ObjectID. |
|
|
each return either respective ObjectID. |
|
|
We already support partial chunking of responses, but we don't yet |
|
|
We already support partial chunking of responses, but we don't yet |
|
|
support filtering or sorting. |
|
|
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> |
|
|
|