Skip to content

reory/Internet_radio_python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎡 Internet Radio Player

Python License Repo Size Last Commit Stars

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

  • Global Streaming: Play a few radio stations.
  • Live Metadata: Real-time updates for track titles and artist info.
  • Smart Search: Instant station filtering via the search bar.
  • Visual Cues: Country flags and "Now Playing" live indicators.
  • User Control: Integrated volume slider and stop functionality.
  • Modular Design: Clean separation between GUI components and player logic.

πŸ–₯️ Main Window interface

Main Window

🎡 Feature Gallery

Now Playing Card Station List Search Bar UI Map
Now Playing Station List Search Bar UI Map Country Station

🧩 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
β”‚   β”œβ”€β”€ world_clock.py
β”‚   β”œβ”€β”€ world_map.py
β”œβ”€β”€ player/                # Media Engine & Data
β”‚   β”œβ”€β”€ radio_player.py
β”‚   └── stations.py
β”‚   └── stations.json
└── assets/                # Media & Icons
|    └── icons/
|    └── map/
|    └── screenshots/
β”œβ”€β”€ tests/                # Pytest suite
β”‚   β”œβ”€β”€ test_radio_player.py
β”‚   └── test_search_bar.py
β”‚   └── test_station_list.py
|   └── test_stations.py 

πŸ“¦ 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:

  • DuckDB Backend: Migrating stations.json to a high-performance database.

  • Geospatial Discovery: Interactive map for station selection.

  • Graphic Equalizer: Advanced audio frequency control.


🀝 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.

  • Fork the repository.

  • Create a new branch (git checkout -b feature/YourFeature).

  • Commit your changes.

  • Submit a Pull Request.


Notes

  • Version 1.0 Initial release.
  • Version 1.1 Added Interactive Map for station discovery.
  • 4 passing unit tests.

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

About

A sleek CustomTkinter radio app powered by VLC with search, flags and live metadata.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors