Application to cast streams to chromecast
Note: Designed to work with Rpi 4. Any installation process works for the Rpi4.
Production installation
Using pip (Windows/Linux/osX)
This requires to have python3
installed and pip
installed. Optionally also venv
.
- (Optional) Create virtual environment to avoid dependency issues.
- Example using venv:
- Create:
python3 -m venv <DIR>
- Start: linux -
source <DIR>/bin/activate
- windows - <DIR>/Scripts/activate
- Stop:
deactivate
- To clear delete the directory and create again
rm -r <DIR>
- Install package from pip:
- Linux/osX:
python3 -m pip install audio_cast
- Windows:
py -m pip install audio_cast
- Install required applications:
- Install vlc:
- Linux/osX has 2 alternatives:
- Install required libraries:
sudo apt install vlc-bin
sudo apt install vlc-plugin-base
- Install VLC
sudo apt install vlc
- Windows: Install vlc from their website.
- (Only Linux/osX) Install
libportaudio2
: sudo apt install libportaudio2
- Install a WSGI server.
- Waitress:
pip install waitress
- Run WSGI server.
- Example:
waitress-serve --call --host=localhost --port=5000 'audio_cast:create_app'
Using apt (Linux)
Dev Usage
- When using VS Code, just run the debugger.
- Optional: Use a virtual environment.
- When starting from termimal.
- Set environment variable for
FLASK_APP
to audio_cast
.
- Linux/osX:
export set FLASK_APP=audio_cast
- Windows cmd:
set FLASK_APP=audio_cast
- Windows powershell:
$Env:FLASK_APP = "audio_cast"
- Launch the server with
python -m flask run
.
Cheatsheet
- To upload to pypi:
- Build:
py -m build
- Deploy:
py -m twine upload dist/*
- To run locally:
- Set environment variable
FLASK_APP=audio_cast
- To run after installation from package:
- Install waitress
python3 -m pip install waitress
- Run waitress
waitress-serve --call --host=localhost --port=5000 'audio_cast:create_app'
- Virtual environment:
- Create:
python3 -m venv <DIR>
- Start: linux -
source <DIR>/bin/activate
- windows - <DIR>/Scripts/activate
- Stop:
deactivate
- To clear delete the directory and create again
rm -r <DIR>
- Install packages from
requirements.txt
pip install -r requirements.txt
.
Rpi steps
- Install pip using apt
sudo apt install python3-pip
- Install venv using apt
sudo apt install python3-venv
. - Create virtual environment and activate it.
- Install waitress.
- Run waitress, run it without host so it is exposed.
- Install vlc
sudo apt install vlc
- Hopefully this can be changed to either incorporating the libvlc libraries or installing a part of vlc. Right now it's around 1 gb, which seems too much for the use needed.
- Or install vlc-bin and vlc-plugin-base.
sudo apt install vlc-bin
and sudo apt install vlc-plugin-base
. It's smaller but still big. Aroung 700MB. - Still there might be a better way.
- Install PortAudio using apt
sudo apt install libportaudio2
.