Networked Media Tank
Dynamic Skins - Printable Version

+- Networked Media Tank (http://www.networkedmediatank.com)
+-- Forum: Community Jukebox, Themes, & UserApps Section (/forumdisplay.php?fid=106)
+--- Forum: Other Video & Music or Photo Jukeboxes (/forumdisplay.php?fid=34)
+--- Thread: Dynamic Skins (/showthread.php?tid=40292)



Dynamic Skins - Chillihead - 05-11-2010 12:42 AM

I am in the process of writing two dynamic skins for the NMT. Both are Python powered and use a database backend to store their data.

They are:

Dynamic Movie Skin

The skin I am using as a template is heavily borrowed from the Unique_Glas theme. However, the generator is set up so that can design your own skin.

To use either Dynamic Skins you will need the following:

- NMT (duh!) ;-) Tested only on an eGreat m34a.

A PC running Windows or Linux, a Mac with Python 2.5/2.5 installed, or

- A D-Link (or Conceptronic) NAS running:

* fonz fun_plug
* Python

For all installations you will need these Python packages:

* CherryPy 3.
* Beautiful Soup.

For the Movie Skin you will also need YANFOE / Ember Media Manager (or similar) to create the NFO files for importing.

Both are still very much in development, so there are no guarantees of any type that they will work - I will say that I use both and they work fine on my set up.

Instructions for running Dynamic Movie Skin

All the components of the DynamicSkin are included on the archive now, including the documentation, for single file download.

:: Information on the fun_plug for the D-Link NAS. Use this to get Telnet, and Python running on your NAS - http://nas-tweaks.net/CH3SNAS:Tutorials/fun_plug

:: CherryPy download. You will need to wget this to your NAS once you have Telneted to it - http://download.cherrypy.org/cherrypy/3.1.2/CherryPy-3.1.2.zip

:: BeautifulSoup download. Again you will need to wget this once you have Telneted to your NAS - http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-....

Once you have downloaded the two Python packages you will need to unzip them, then install them to make them available to Python. I will assume that if you are able to get as far as Telneting to your NAS and wgetting the packages you won't need help with the packages.

I am putting this out there to make people aware that it exists, and does indeed work. I am using it as my skin for my NMT and it works a treat, although it quite a bit slower on the NMT than on the PC, even when the .py files are run from the NAS in both cases. I haven't looked into why this is, but will eventually.

Feel free to leave feedback / questions / criticisms for me.

PC based video demo here - http://www.youtube.com/watch?v=mMjt7Bonigs.

Actual demonstration video here - http://www.youtube.com/watch?v=NLp_BfYpJ2w. It's a bit blurry - my video camera didn't cope well with the screen, in hind sight I should have used manual focus.

Credit to Mr M for creating the Unique_Glas skin on which this is based, and for inspiring me to take the leap into creating DynamicSkin.

If anyone has tried this and got it working or wants to contact me about it - you can get me at thewinnards@gmail.com.

Version history

V1.0

* Create database with Movie Details.
* CherryPy server to serve up DynamicSkin (from NAS/PC/Mac).
* Browse and play movies.
* Search for movies based on actor name / movie name / plot.
* View an actor's other movies (from movie detail page) with additional actor thumbnail.


Dynamic Music Skin

The requirements for running this skin are the same as for the movie skin above, plus you will need:
* Mutagen python library - http://code.google.com/p/mutagen/downloads/list

Here's a demo captured off my PC: http://www.youtube.com/watch?v=oCmhIvoX6w0

To use this:

* Edit the settings.ini file to match your setup.
* Run Listfiles.py to create your MusicDB.
* Run the DynamicMusicSkin.py to serve up the skin.

Currently this application will:

* Iterate through your music folder, creating a library of your mp3 files. Not that it will ONLY add mp3 files and I have no intention of adding support for any other formats.
* Display a skin with your albums on it, similar to Windows 7 MCE. You can page through these, or search using the in built search function. From which you can:
* Open an album showing the songs. From there you can play the album, or individual songs.
* Added a nice feature which displays a large version of your cover when you mouse over it.

Change Log:

11/5/10 - MusicDB 0.10

ListFiles.py

* Refactorted to populate DB faster, and remove non-existant files.
* Added more code to figure out which cover to use for an album.

DynamicMusicSkin.py

* Fixed large covers on album view to work on NMT (although not so good in Firefox now ;-)).
* Fixed issue with search not working, although there is still an issue with trying a blank search if you highlight the search button, not the search box. This seems to be some kind of funky thing that the NMT Gaya browser does!
* Fixed the songs list in album view so you can play individual songs!
* Removed border on highlighted link image.
* Added auto load of next and previous page.
* Touched up some of the graphics slightly.

30/4/10 - MusicDB 0.02

* Added large covers on mouse over. Works in Firefox (on PC) only - breaks the JS on the NMT version.
* Changed the Album view to be multi-image using DIVs/CSS. Haven't tested on NMT.
* Changed all fonts from Verdana to Arial as this one of the only two fonts supported on the NMT.

So far, that's it. I plan to add:

* Show more albums by same artist.
* Sort by Artist.
* Create / edit / play playlists. These will be persistent (stored on the filesystem or in the DB).
* Maybe a party mode.

Note: Whilst Macs support Python, the way in which they store the files that make up an application prevent them from allowing either of my skins to work out of the box. If you have a Mac and want to try one of the skins out, be aware that you will have some editing of the .py files to do.

I'm not aware of anyone else running this on a NAS or under Linux, but given that I run this at home on my NAS I'm sure that it will run quite nicely on a Linux box.

Screen shots:

Movie

[Image: Screen%20Shot%20Main.jpg]


http://mediaplayersite.com/system/files/703-Chillihead/Screen%20Shot%20Details.jpg

http://mediaplayersite.com/system/files/703-Chillihead/Screen%20Shot%20Main%202.jpg

Music

[Image: DynamicMusicSkin.png]


[Image: DynamicMusicSkin%20Album%20View.png]


Visit Omertron's site for downloads:

Music - http://mediaplayersite.com/node/199
Movie - http://mediaplayersite.com/node/184


RE: Dynamic Skins - excal - 05-11-2010 01:06 AM

thats looking good nice job!


RE: Dynamic Skins - mhale62 - 05-11-2010 01:24 AM

Can you explain how or point me to a source of info on how to edit the .py files?

Thanks.

Nice looking skin BTW ✌


RE: Dynamic Skins - Chillihead - 05-11-2010 01:31 AM

(05-11-2010 01:24 AM)mhale62 Wrote:  Can you explain how or point me to a source of info on how to edit the .py files?

Thanks.

Sure thing - Notepad ;-) They are just text files :-)

(05-11-2010 01:24 AM)mhale62 Wrote:  Nice looking skin BTW ✌

Mr M is to thank for the actual movie skin. I just 'borrowed' it to use as it is my favourite. The music skin I have made to look very similar to the default Windows 7 MCE skin.
(05-11-2010 01:06 AM)excal Wrote:  thats looking good nice job!

Thank you Smile Mr M created the Unique_Glas skin on which the movie skin is based.


RE: Dynamic Skins - mhale62 - 05-11-2010 01:43 AM

(05-11-2010 01:31 AM)Chillihead Wrote:  Sure thing - Notepad ;-) They are just text files :-)
{snip}
Thank you Smile Mr M created the Unique_Glas skin on which the movie skin is based.

Thanks for the quick comeback Chilliehead; I should have asked how do I find out what to edit in the file(s)?

I edit my libraries.xml and moviejukebox.properties files but TBH I'm pretty much limited to copying other folk's work… This will be my first experience with Python; color me intrepid Big Grin

Oh yeah, Macs come with TextEdit, alla same Notepad Wink


RE: Dynamic Skins - Chillihead - 05-11-2010 02:08 AM

(05-11-2010 01:43 AM)mhale62 Wrote:  Thanks for the quick comeback Chilliehead; I should have asked how do I find out what to edit in the file(s)?

I edit my libraries.xml and moviejukebox.properties files but TBH I'm pretty much limited to copying other folk's work… This will be my first experience with Python; color me intrepid Big Grin

Oh yeah, Macs come with TextEdit, alla same Notepad Wink

LOL, sorry, didn't realise that's what you meant Smile

Running this on a Mac is possible, but what you'll need to do it move the settings.ini file from the Data folder into the same folder as the .py files - something to do with the way Macs group the files that make up an application.

From there, crack open the MovieDatabase.py. At line 15 replace

if GetConfig(os.path.join('Data','settings.ini')):

with

if GetConfig('settings.ini'):

Off hand I'm not sure if that's all you need to change or not, but it will get us started. We can take this to an off-line discussion if you prefer.



Also, you will need to change the paths contained within that settings.ini file too. For example:

Change

DBName = \BOPDHBCode\Python\DynamicSkin\Data\MovieDB.db

to

DBName = MovieDB.db

and so forth.

Once you have a DB created you will need to make the same change from the MovieDatabase.py file to the DynamicSkin.py file at line 11 to get the actual skin served up.


These changes will apply to the Dynamic Music Skin too as they are essentially the same codebase.


MusicFlow for DMS - Chillihead - 05-25-2010 09:45 PM

I am writing a CoverFlow style interface for the Dynamic Music Skin database.

It's still in the early stages, but is functional.

More info on the DMS page - http://mediaplayersite.com/node/199

Screen shot -

[Image: 2010-05-26%2008%2032%2018.png]



RE: Dynamic Skins - excal - 05-26-2010 07:07 PM

thats looking sweet man!

so these are all python based? I only ask cause there was another dynamic music skin developed thats sorta coverflow based....i thought it might provide some insight for ya. But i think its php based.


RE: Dynamic Skins - Chillihead - 05-26-2010 10:40 PM

(05-26-2010 07:07 PM)excal Wrote:  thats looking sweet man!

so these are all python based? I only ask cause there was another dynamic music skin developed thats sorta coverflow based....i thought it might provide some insight for ya. But i think its php based.

Thanks Excal Smile

Yep, all written in Python.

I'll see if I can find the skin and take a look at how it works.