Skip to content

Overview

What Is Doda Media Player?

Doda Media Player is a cross-platform media player that does everything you expect — plus YouTube streaming, 16 audio visualizers, a 10-band equalizer, and a beautiful interface — without legacy cruft. Built with Python and Qt, it’s fully open source and free.

Why Another Media Player?

VLC is powerful but its interface hasn’t changed in decades. MPV is flexible but keyboard-only. Doda Media Player fills the gap: a modern, beautiful GUI with keyboard shortcuts for every action, real-time audio visualizers, and seamless YouTube integration — all in a single app.

Design Principles

  • No ads, no tracking, no telemetry — Doda Media Player never phones home
  • Keyboard everything — Every action has a shortcut. Learn them once, use them forever
  • Beautiful by default — Dark theme with auto-hiding controls during playback
  • Open source — GPL-2.0. Built in the open on GitHub

Architecture

Doda Media Player uses a Python + QML architecture:

DodaMediaPlayer/
├── src/
│   ├── main.py              # Entry point
│   ├── app.py               # AppController (Python ↔ QML bridge)
│   ├── core/
│   │   ├── config.py        # Settings persistence (JSON)
│   │   ├── visualizer.py    # Audio FFT spectrum analyzer
│   │   ├── subtitles.py     # SRT/ASS parser
│   │   └── playlist.py      # Playlist model with shuffle/repeat
│   └── ui/
│       ├── main.qml         # Main window, all controls and overlays
│       └── icons/           # 19 SVG icons (3D gradient style)
├── tests/
├── doda-player.spec         # PyInstaller build spec
├── requirements.txt
├── pyproject.toml
└── README.md

The QML layer handles all UI rendering — controls, overlays, visualizers, and animations. The Python backend handles media playback via Qt Multimedia, FFT spectrum analysis via NumPy, subtitle parsing, playlist management, and yt-dlp integration.

How It Works

  1. Open a file — Doda Media Player uses Qt Multimedia (FFmpeg) for hardware-accelerated playback of virtually any media format
  2. Or paste a URL — yt-dlp extracts the stream URL, and you can choose to stream, download MP4, or download MP3
  3. Control playback — Use the bottom bar controls or keyboard shortcuts (Space, arrows, F for fullscreen, etc.)
  4. Visualize audio — The FFT spectrum is computed in real time by NumPy and rendered by QML Canvas in 16 different visualizer modes
  5. Adjust sound — The 10-band graphic equalizer adjusts gains applied to the spectrum, with 5 presets saved across sessions
  6. Manage playlists — Add files, reorder, shuffle, repeat. Playlists auto-save on close. Resume from last position

Project Status

Property Value
Version v0.1.0
Status Initial release
Platforms Linux, Windows, macOS
License GPL-2.0
Repository github.com/dodatechcom/dodamediaplayer