Skip to main content

Play radio. Style your App.

Project description

Eisenradio - a Web radio expandable collection

alt logo of eisenradio Tests

Info

  • Organize your web radios; delete and update, backup and restore
  • Style your app with pictures, write a comment or import a poem, song or study text to have a good time
  • Create a shuffled playlist within a local audio files folder in seconds
  • grab radio content until ISP bandwidth limit hits, with my professional aacPlus repair

Links

newest version on GitHub dev branch, then PyPi Package, Android or Snap, Docker

Eisenradio - the boring details

  • REST API app on blueprints and ApplicationFactory of the Flask microframework with a SQLite database

  • First Internet Radio App that can run a Spectrum Analyser in a Web browser (Feb,2022)

  • A local Python Flask Web Server connects to the radio server in behalf of you. Your browser connects to Flask

    • Backend (server) opens the connection, buffers the radio stream and presents it to localhost IP: 127.0.0.1
    • Frontend (browser) controls the backend, plays internet and local audio playlists
    • Browser audio element connects http://localhost:5050/sound/classic that streams http://37.251.146.169:8000/streamHD
    • Closing the browser does not disconnect the server listen (buffer discarded) nor streaming connections
  • Plays and repairs aac plus files; play (1.3), repairs since version (1.4);

  • Backup and restore are easy work with the help of an optional ex/imported human-readable *ini file

  • Blacklist feature for recorded files (titles); delete only once

    • lists can be ex/imported via a json dictionary file to other devices
  • playing local audio uses the web server multiple file upload feature

  • Multithreading allows you an unlimited number of radio connections at the same time, until the ISP Bandwidth limit hits

  • Android APK Package uses Python Kivy for multi-touch and promotes the app to "foreground service" (to not get killed)

      """ sketch """  
    
      |B |               |S | Flask web server, Header[Werkzeug/2.0.2 Python/3.10.1]
      |r |listen         |e |-------> starRadio
      |o |------->   <-- |r |
      |w |GhettoRecorder |v |-------> planetRadio
      |s |--->    <----- |e |
      |e |               |r |-------> satteliteRadio
      |r |               |  |
      net: localhost     net: internet
      CORS: accept       CORS: deny
      audioNode: 1,-1    audioNode: 0, 0
      JavaScript,CSS     Python,SQL
    

    Cross-Origin Resource Sharing mechanism (CORS) i.a. prevents a Browser from analysing audio from internet

command line

Eisenradio is using the 'GhettoRecorder' package https://pypi.org/project/GhettoRecorder/

echo "call the command line main menu:" 
$ ghettorecorder

You can export your settings.ini and blacklist.json via "Tools/Export/Names and URL's" menu from your database. Updated blacklist.json can be imported to your database.

pip install

""" xxs Linux xxs """
$ pip3 install eisenradio
$ python3 -m eisenradio.wsgi  # watch flask

""" xxm Windows xxm """
> pip install eisenradio
> python -m eisenradio.wsgi

""" xxl big company xxl """
$$$ pip3 install eisenradio
$$$ python3 -m eisenradio.app  # serve flask
""" for the sake of completeness, a python
    production server 'waitress' is started """

Pytest

Shows how to init a flask instance and perform some tests on it. More hints in the test comments.

> ~ ... /eisenradio $ pytest -s    # -s print to console

Is now part of the testautomation with flake8 and tox on GitHub.

Uninstall

Python user:

  • find the module location
  • uninstall and then remove remnants

$ pip3 show eisenradio

$ pip3 uninstall eisenradio

Location: ... /python310/site-packages

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eisenradio-2.2.tar.gz (1.5 MB view hashes)

Uploaded Source

Built Distribution

eisenradio-2.2-py3-none-any.whl (1.5 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page