CyberTube is a desktop client for searching and watching YouTube videos without embedding the YouTube website.
The app uses yt-dlp's Python API for search/metadata/direct media resolution, Qt Multimedia for native playback, SQLite for local history/favorites/settings, and NumPy for a small UI signal visualization.
- Search YouTube through yt-dlp
- Native
QMediaPlayer/QVideoWidgetplayback - No QtWebEngine and no embedded YouTube HTML page
- Portable local SQLite data stored in
CyberTube/data/(settings, caches, histories, favorites, and block lists) - Five cyberpunk theme skins
- Non-blocking yt-dlp work with
QThreadPool - YouTube CDN thumbnails derived directly from video IDs (
maxresdefault.jpgwith quality fallbacks) - Optional remote thumbnail loading
- Local privacy/status panel
- Neon Pink
- Neon Blue
- Green Matrix
- Amber Hacker
- Purple Neo
python -m pip install -U PyQt6 numpy yt-dlp
python main.pyOn Windows you can also double-click run_windows.bat after installing dependencies.
CyberTube does not load the normal YouTube webpage, browser-side scripts, cookies, overlays, or the standard web player. It therefore avoids that entire browser-page tracking/ad surface.
It does not make network requests anonymous. YouTube/CDN endpoints (or a future proxy backend) may still observe requests and the client IP. Creator-baked sponsorships are part of the uploaded media and are not automatically removed.
Qt's native media player is a lightweight first backend. YouTube frequently exposes highest-quality video and audio as separate DASH streams, while this MVP deliberately chooses a single A/V stream for direct Qt playback.
CyberTube has a Settings > Default video quality option (Auto, 360p, 480p, 720p, 1080p, 1440p, or 2160p/4K). The player also has a per-video quality selector. Native Qt playback requires one combined audio/video stream, so YouTube may force playback to the nearest lower progressive quality. Downloads use the selected quality and can use separate video/audio streams; install FFmpeg for yt-dlp to merge those high-resolution streams. The DOWNLOAD button prompts for a destination folder and displays progress.
CyberTube stores completed search terms and their result rows in the local SQLite database. Opening Home, Watch History, Favorites, Settings, or Search History does not repeat a search. Search History lets you reopen previously saved result sets without network traffic. Pressing SEARCH is treated as an explicit refresh: if that normalized term already exists, its saved result set is replaced with the newly returned results. Watch History and Search History can be cleared independently from Settings.
Searches initially load 20 results. The LOAD MORE button fetches the next 20 and appends unique videos to the persistent SQLite search cache. Reopening the saved search uses the expanded cached result set without repeating those searches.
CyberTube lets you choose a preferred download container in Settings. MP4 is the default, with WebM and MKV also available. The selected video quality and preferred container are used for downloads when compatible streams are available.
CyberTube includes a dedicated Browse view below Home so discovery does not depend on typing a search every time. The first release includes Trending, Music, Gaming, Movies & Animation, News, Sports, Comedy, Entertainment, Science & Technology, Education, How-to & Style, Travel, Autos & Vehicles, and Pets & Animals.
Category feeds load 20 videos initially and use the same LOAD MORE behavior as search. Each category/region combination has its own persistent SQLite cache. Reopening a category uses the saved feed without making another discovery request. REFRESH explicitly replaces the cached first page with newer results, while LOAD MORE appends additional unique videos. Existing video/channel blocks are applied before cached category results are displayed.
The Browse region is selectable in Settings. Changing regions does not destroy the previous region's cached category results.
- One-click Block Video / Block Channel controls on video result cards.
CyberTube stores its persistent data in the data folder beside the application (CyberTube/data/cybertube.db). This keeps the application self-contained.

