Code Monkey home page Code Monkey logo

cohen3's Introduction

Cohen3

image

image

PyPI version

PyPI version

GitHub tag

GitHub release

image

image

Github commits (since latest release)

GitHub last commit

image

Overview

Dlna/UPnP framework

cohen-image

For the Digital Living

Cohen3 Framework is a DLNA/UPnP Media Server for Python 3, based on the Python 2 version named Cohen. Provides several UPnP MediaServers and MediaRenderers to make simple publishing and streaming different types of media content to your network.

Cohen3 is the Python 3's version of the Coherence Framework project, originally created by Frank Scholz. If you ever used the original Coherence project you could use Cohen3 like you do in the original Coherence project.

Features

The original Coherence Framework were know to work with different kind of dlna/UPnP clients and Cohen3 should also work for them:

  • Sony Playstation 3/4
  • XBox360/One
  • Denon AV Receivers
  • WD HD Live MediaPlayers
  • Samsung TVs
  • Sony Bravia TVs

And provides a lot of backends to fulfil your media streaming needs:

  • Local file storage
  • Apple Trailers
  • Lol Cats
  • ShoutCast Radio
  • and much more...

Project Status

Right now Cohen is in development mode. All the code has been refactored in order to work for Python 3, moreover, some additions has been made to make easier to create a custom Backend (check the coherence.backends.models <https://opacam.github.io/Cohen3/source/coherence. backends.html#coherence-backends-models-package> package documentation for more information). The original Coherence project was unmaintained for a while and some of the backends has become obsolete. You can see the backends status in the below table.

Status Backend Name Description/Notes
question AmpacheStore
success AppleTrailersStore
question AudioCDStore
question AxisCamStore
question BansheeStore
question BuzztardStore
question DVBDStore
question ElisaPlayer
question ElisaMediaStore
question FeedStore
question FlickrStore
success FSStore
question Gallery2Store
question GStreamerPlayer
success IRadioStore (ShoutCast)
question ITVStore
fails LastFMStore service moved to new api...needs update
success LolcatsStore
question MediaStore
question PicasaStore Partially tested, may work until starting year 2019, where google will begin to shutdown this service, the source code should be rewrite using the api for the new service `Google Photos`
success PlayListStore
question RadiotimeStore
question SWR3Store
success TEDStore
question TestStore
question TrackerStore
question TestStore
fails TwitchStore Partially working, video play is not working
question YamjStore
fails YouTubeStore Google moved to new api...backend should be rewrite with new api in mind

Notes:

  • Some of the listed backends it may be removed in a future releases... depending on if the target service is still available, dependencies of the backend, maintainability...keep in mind that the main goal of this project is to have a working media server/client capable of serve local files into a dlna/upnp network, all the backends are extra features which may be handy for some end-users and also may be useful as a reference of how to make your own backend using the Cohen3's modules.

Installation with pip

If you want to install with pip, first make sure that the pip command triggers the python3 version of python or use pip3 instead. You can install the Cohen3 python package from pypi or github

To install from pypi:

$ pip3 install --user Cohen3

To install from git:

$ pip3 install --user https://github.com/opacam/Cohen3/archive/master.zip

Note

- An user install is recommended or use an virtualenv

Tip

If you encounter problems while installing, caused by some dependency, you may try to bypass this error by installing the conflicting dependency before Cohen3, so if you face an error like this for `Twisted`:

ERROR: Could not find a version that satisfies the requirement Twisted>=19.2.1 (from Cohen3) (from versions: none)

You should be able to fix it installing Twisted before the install of `Cohen3`:

pip3 install --upgrade --user Twisted

Install from source with poetry

After downloading and extracting the archive or having done a git clone, move into the freshly created 'Cohen3' folder and install all dependencies (dev included) with poetry, but first upgrade `pip`:

$ pip3 install pip --upgrade
$ pip3 install poetry
$ poetry install

Personalized install from source with pip

Also, you can perform a personalized install using pip. This will allow you to install only certain dependencies, if you want the basic dependencies to run the project:

$ pip install .

If you want to install Cohen3 with development dependencies:

$ pip install .[dev]

Note: Here you have all supported install modes:

  • dev: all the dependencies will be installed except docs
  • test: used by travis builds (omits dbus and docs)
  • docs: install build dependencies to generate docs
  • dbus: install dependencies needed by tube service or dvbd storage
  • gstreamer: needed if you use GStreamerPlayer
  • picasa: needed by the picasa storage
  • youtube: needed by the youtube backend

Quickstart

To just export some files on your hard-disk fire up Cohen with an UPnP MediaServer with a file-system backend enabled:

$ cohen3 --plugin=backend:FSStore,content:/path/to/your/media/files

You can also configure cohen via a config file. Feel free to check our example misc/cohen.conf.example. The config file can be placed anywhere, cohen looks by default for $HOME/.cohen, but you can pass the path via the command line option '-c' to it too:

$ cohen3 -c /path/to/config/file

For developers

Starting from version 0.9.0 the event system has changed from louie/dispatcher to EventDispatcher (external dependency). Here are the most important changes:

  • The new event system is not a global dispatcher anymore
  • All the signal/receivers are connected between them only if it is necessary.
  • We don't connect/disconnect anymore, instead we will bind/unbind.
  • The events has been renamed (this is necessary because the old event names contains dots in his names, and this could cause troubles with the new event system)

Please, check the documentation for further details at "The events system" section.

Contributing

Report bugs at https://github.com/opacam/Cohen3/issues

Feel free to fetch the repo and send your pull requests!

cohen3's People

Contributors

cluelessperson avatar dependabot[bot] avatar gnunicorn avatar htgoebel avatar hypfer avatar kenmacd avatar lalmeras avatar me-minus avatar micxer avatar opacam avatar phiamo avatar philn avatar sebp avatar tamland avatar unintended avatar whorfin avatar

Watchers

 avatar  avatar

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.