Internet Radio Python

Python License Repo Size Last Commit Stars

🎡 Internet Radio Player

Powered by Python, CustomTkinter, and VLC

A modern, modular Internet Radio application built with Python, CustomTkinter, and python-vlc. This project features a clean UI, live metadata updates, and a modular architecture designed for easy expansion.


πŸš€ Features


πŸ–₯️ Main Window interface

Main Window

🎡 Feature Gallery

Now Playing Card Station List Search Bar
Now Playing Station List Search Bar

🧩 Project Structure

internet_radio/
β”œβ”€β”€ app.py                 # Main entry point
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ gui/                   # CustomTkinter UI Components
β”‚   β”œβ”€β”€ main_window.py
β”‚   β”œβ”€β”€ now_playing.py
β”‚   β”œβ”€β”€ station_list.py
β”‚   β”œβ”€β”€ controls.py
β”‚   └── search_bar.py
β”œβ”€β”€ player/                # Media Engine & Data
β”‚   β”œβ”€β”€ radio_player.py
β”‚   └── stations.json
└── assets/                # Media & Icons
    └── icons/

πŸ“¦ Installation

  1. Clone the repository and install:
git clone https://github.com/reory/Internet_radio_python.git
cd Internet_radio_python
pip install -r requirements.txt

[!IMPORTANT] This app requires the VLC media player (64-bit) installed on your system to function. DOWNLOAD VLC here here


Usage

This project requires both the backend and frontend to be running simultaneously.

  1. Run the app:
     python app.py
    
    

Testing🚦

The project includes a comprehensive suite of 4 tests covering radio searches, radio player, and the radio UI logic.

To run the tests:

pytest

πŸ—ΊοΈ Future Plans & Roadmap

I am currently working on scaling this project. Planned features include:


🀝 Contributing

Contributions, ideas, and feedback are welcome! This is my first public project, so constructive feedback is especially appreciated as the app continues to grow.


Notes

Built by Roy Peters β€” Click here for contact info😁