No description
Find a file
2023-07-28 19:53:29 +02:00
bin python3 only, drop six, drop __future__ 2023-07-28 18:29:55 +02:00
debian python3 only, drop six, drop __future__ 2023-07-28 18:29:55 +02:00
pandora_client newer version of ffmpeg require -v:pass to limit 2-pass encoing to video 2023-07-28 19:53:29 +02:00
config.example.json better extract and file locating 2012-01-04 12:31:43 +05:30
config.plugin_example.py - add option to customize path parsing 2013-04-24 15:21:21 +02:00
README.md typo 2019-12-21 20:34:48 +02:00
setup.py python3 only, drop six, drop __future__ 2023-07-28 18:29:55 +02:00

pandora_client - python client and libary to access a pan.do/ra instances

Documentation at: https://code.0x2620.org/0x2620/pandora_client/wiki

Installation

Linux

  • install dependencies

      sudo apt install python3 python3-pip ffmpeg
    
  • install pandora_client

      sudo pip3 install pandora_client
    

macOS

  • install brew (https://brew.sh/)

  • install dependencies

      brew install python3
      brew install libvpx libvorbis
      brew install ffmpeg --with-libvpx --with-libvorbis --with-libopus
    
  • install pandora_client

      pip3 install pandora_client
    

pandora client example:

import pandora_client #example config.json ''' { "url": "http://localhost:8000/api/", "username": "username", "password": "password", "cache": "/.ox/client.sqlite", "media-cache": "/.ox/media", "volumes": { "volumename": "/media/2010/Movies" } } ''' c = pandora_client.Client('config.json') c.scan() #scans all volumes for files and updates cache db c.sync() #syncs cached file info with site, and encodes and uploads requested media c.clean() #cleanup transcodes created druing sync to save disk space

just using the API:

api = pandora_client.API("http://localhost:8000/api/")
r = api.find(
    query={'conditions':[]},
    keys=['title', 'year'],
    range=[0, 100]
)
for i in r['data']['items']:
    ...

api documentation is available as python docstrings. i.e. in ipython: api.find? (alternatively you can open the api url in a browser to read further documentation)

Distributed encoding

pandora_client can distribute the encoding to multiple nodes on a local network or multiple encodings on the same host.

to do this you need to install additional dependencies: apt-get install python3-twisted python3-requests

now run one node in server mode:

pandora_client server

and start the other nodes with:

pandora_client client http://SERVER_IP:8789