A beautiful, feature-rich IPTV player for streaming Indian TV channels across multiple languages. Built with Python, Tkinter, and VLC.
- ๐ Multi-Language Support: Hindi, Bangla, Tamil, Telugu, Malayalam, Kannada, Marathi, Punjabi, Odia,Nepali, Konkani, Urdu, Assamese, Gujarati, English
- ๐ Real-time Search: Quickly find your favorite channels
- โญ Favorites System: Save and manage your preferred channels
- ๐๏ธ Volume Control: Slider and keyboard shortcuts
- ๐ฅ๏ธ Fullscreen Mode: Immersive viewing experience with auto-hide controls
- โจ๏ธ Keyboard Shortcuts: Full keyboard navigation support
- ๐จ Modern UI: Beautiful dark theme with cyan accents
- ๐พ Persistent Settings: Favorites are saved automatically
- ๐ Cross-Platform: Works on Windows, Linux, and macOS
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐บ DAVID TV [_][โก][ร] โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ฌ LOGO โ โ
โ DAVID TV โ โ
โ โ VIDEO PLAYER AREA โ
โ Language โผ โ โ
โ Search... โ โ
โ โโโโโโโโโโโโ โ โ
โ โโญChannel1โ โ โ
โ โ Channel2 โ โ โ
โ โ Channel3 โ โ โ
โ โโโโโโโโโโโโ โ โ
โ ๐ 70% โ โ
โ โโโโโโโโโโ โ โ
โ ๐ Mute โ โ
โ โฎ โฏ โญ โ โ
โ โญ Favorite โ โ
โ ๐ฅ Fullscreenโ โ
โ โน About โ โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Python 3.8 or higher
- VLC Media Player installed on your system
- Clone the repository
git clone https://github.com/david0154/david-tv.git cd david-tv
python -m venv venv
venv\Scripts\activate-
Install dependencies
pip install -r requirements.txt
-
Run the application
python david_tv.py
# Install PyInstaller
pip install pyinstaller
# Build executable (single line)
pyinstaller --onefile --windowed --icon=icon.ico --add-data "icon.ico;." --add-data "logo.png;." --add-data "splash.png;." --add-data "favorites.json;." --add-binary "C:\Program Files\VideoLAN\VLC\libvlc.dll;." --add-binary "C:\Program Files\VideoLAN\VLC\libvlccore.dll;." --add-data "C:\Program Files\VideoLAN\VLC\plugins;plugins" --hidden-import=vlc david_tv.py
# Or use the spec file
pyinstaller david_tv.specNote: Adjust VLC paths if installed in a different location.
# Install PyInstaller
pip install pyinstaller
# Build executable
pyinstaller --onefile --windowed --icon=icon.ico \
--add-data "icon.ico:." \
--add-data "logo.png:." \
--add-data "splash.png:." \
--add-data "favorites.json:." \
--add-binary "/usr/lib/x86_64-linux-gnu/libvlc.so.5:." \
--add-binary "/usr/lib/x86_64-linux-gnu/libvlccore.so.9:." \
--add-data "/usr/lib/x86_64-linux-gnu/vlc/plugins:plugins" \
--hidden-import=vlc \
david_tv.pyNote: VLC library paths may vary by distribution. Check with:
dpkg -L vlc-bin | grep libvlc# Install PyInstaller
pip install pyinstaller
# Build executable
pyinstaller --onefile --windowed --icon=icon.icns \
--add-data "icon.ico:." \
--add-data "logo.png:." \
--add-data "splash.png:." \
--add-data "favorites.json:." \
--add-binary "/Applications/VLC.app/Contents/MacOS/lib/libvlc.dylib:." \
--add-binary "/Applications/VLC.app/Contents/MacOS/lib/libvlccore.dylib:." \
--add-data "/Applications/VLC.app/Contents/MacOS/plugins:plugins" \
--hidden-import=vlc \
david_tv.py| Key | Action |
|---|---|
Space |
Play/Pause |
โ / โ |
Next Channel |
โ / โ |
Previous Channel |
+ / = |
Volume Up |
- |
Volume Down |
M |
Mute/Unmute |
F11 |
Toggle Fullscreen |
Esc |
Exit Fullscreen |
Double Click |
Toggle Fullscreen |
- Select Language: Choose from the dropdown menu
- Search Channels: Type in the search box to filter channels
- Play Channel: Click on any channel in the list
- Add to Favorites: Select a channel and click "โญ Favorite"
- Adjust Volume: Use slider or keyboard shortcuts (
+,-) - Fullscreen: Click button, press
F11, or double-click video
tkinter (usually included with Python)
python-vlc>=3.0.0
Pillow>=9.0.0
requests>=2.27.0
- VLC Media Player: Must be installed separately
- Windows: Download VLC
- Linux:
sudo apt install vlc(Ubuntu/Debian) orsudo yum install vlc(Fedora/RHEL) - macOS:
brew install vlcor Download VLC
david-tv/
โโโ david_tv.py # Main application
โโโ icon.ico # Application icon
โโโ logo.png # App logo (200x70)
โโโ splash.png # Splash screen
โโโ favorites.json # Saved favorites (auto-generated)
โโโ requirements.txt # Python dependencies
โโโ david_tv.spec # PyInstaller spec file
โโโ README.md # This file
Edit the LANGUAGE_PLAYLISTS dictionary in david_tv.py:
LANGUAGE_PLAYLISTS = {
"Hindi": "https://your-custom-playlist.m3u",
"Custom": "https://another-playlist.m3u",
}Modify the init_audio() function:
def init_audio():
player.audio_set_volume(50) # Set to 50%- Ensure VLC is properly installed
- Try running from terminal/command prompt to see error messages
- Check system audio settings
- Make sure you're using the fixed code with proper VLC embedding
- Verify
--windowedflag is used in PyInstaller command
- Check internet connection
- Some IPTV sources may be temporarily unavailable
- Try switching to a different language category
- Ensure
icon.icois in the same directory - Use
--add-data "icon.ico;."in PyInstaller command - Check icon file is valid
.icoformat
This project is licensed under the MIT License - see the LICENSE file for details.
David
- Email: davidk76011@gmail.com