Code Monkey home page Code Monkey logo

mediabox's Introduction

MediaBox

A simple web interface to access to your media from anywhere. Open ID login with whitelisting. Open-source project, using Django, Python, Backbone.js, HTML5, Bootstrap from Twitter.

Setup

  1. Install required python modules

     pip install -r requirements.txt
    
  2. Create database (sqlite3), and admin account

     ./manage.py syncdb
    
  3. Create a symbolic links to your media collections:

     mkdir static/media
     ln -s /path/to/public/collection static/media/public
     ln -s /path/to/private/collection static/media/private
    
  4. Import ID3 genre data to use as canonical genre meta data

     ./manage.py import_id3_genres
    
  5. Synchronize meta data of media files from the filesystem into the database

     ./manage.py sync_media
    
  6. Start local website on localhost:8000

     ./manage.py runserver
    
  7. Visit http://localhost:8000/

Local settings

The default settings.py is suitable for development. To override some settings, especially DATABASES and SECRET_KEY, create a custom local_settings.py file, based on the included local_settings.py.sample and call manage.py like this:

./manage cmd --settings=local_settings

Live demos

Screenshots

Folders

Albums

Features

  • Browse directory of music files
  • mp3 files are playable in the browser using Yahoo! WebPlayer (looking for a suitable alternative, implemented in pure html5)

Well that's pretty much it for now. And it's working fine like that. But that's not great.

Work in progress: (stuff that's working but not really used yet)

  • Import meta data from mp3 files and store in a local database cache for fast access

  • Supported audio formats:

    • mp3
    • (more are coming soon, can be added easily using mutagen)

Technologies used or planned (for aspiring contributors)

  • django/python: database not used yet, but will be used to replace folder traversal
  • a versioned and defined and stable ReST server as well to allow add-on's and alternate front-ends in the future, while not in code now it is thought about as features are added
  • _, Backbone, jQ.tpl all powerhousing the new responsive Bootstrap Framework based set of theme(s)
  • multiple views per artist, album, playlist, etc all graceful as one would expect
  • mutagen: used to get music file meta data, supports many audio formats
  • webplayer by Yahoo!: the current media player, but it would be great to change this to a pure html5 implementation without Flash

Planned features (most important at the top)

  • Change the navigation: instead of page reloads folder by folder, load the entire collection on the client side into backbone objects and use js to navigate artists and albums.
  • Search!
  • Count how many times I listen to the same stuff
  • Favoriting: albums, artists, songs
  • Playlists!
  • Add support for more audio formats: ogg, flac Note: the webplayer probably cannot play anything but mp3. A pure HTML5 player should have no problem with that.

mediabox's People

Contributors

janosgyerik avatar iamfiras avatar bholtsclaw avatar

Stargazers

Pavel avatar Miku Yves avatar

Watchers

James Cloos avatar  avatar  avatar Miku Yves avatar

mediabox's Issues

Should show recent folders always

When navigating through folders that contain no music files, the Recent folders box is not visible. Is should always be visible. (I think it used to be that way, but I'm not sure 100%...)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.