- Python 100%
| README.md | ||
| Streamfabric.py | ||
streamfabric : unixfabric.com
streamfabric is a lightweight local desktop music queue app built with Python, pywebview, and the YouTube Data API.
It runs locally on your computer, searches YouTube, lets you build a queue, and plays tracks inside the application window using the YouTube IFrame Player.
Features
- Search YouTube from inside the app
- Add search results to a local queue
- Bulk add songs, one query per line
- Play, pause, next, and restart controls
- Seekable progress bar
- Left-side vertical volume control
- Standalone mute control
- Expandable video viewer
- Local queue saving with
queue.json - Local settings saving with
settings.json - UnixFabric-inspired dark color scheme
- Optional favicon branding
- Source Code Pro / Nerd Font style font stack
Requirements
- Python 3.10 or newer
- pip
- Microsoft Edge WebView2 Runtime
- YouTube Data API key
- Python packages:
pywebviewrequests
Optional:
assets/favicon.png- Source Code Pro or SauceCodePro Nerd Font
Folder Layout
streaming app/
├── stream.py
├── assets/
│ └── favicon.png
├── queue.json
└── settings.json
queue.json and settings.json do not need to exist before first launch. The app creates them when needed.
Installation
Open PowerShell in the project folder:
cd "$env:USERPROFILE\Desktop\streaming app"
Install the required Python packages:
pip install pywebview requests
API Key Setup
Open stream.py and find this line near the top:
API_KEY = "PASTE_YOUR_YOUTUBE_API_KEY_HERE"
Replace the placeholder with your YouTube Data API key:
API_KEY = "YOUR_ACTUAL_API_KEY"
Do not share this key publicly.
Running the App
From the project folder, run:
python .\Streamfabric.py
How to Use
Search for one song using the search bar, then click Add beside a result to add it to the queue.
To bulk add songs, paste multiple song names into the bulk box, one per line:
Nas The World Is Yours
Deftones Sextape
Radiohead Weird Fishes
Kendrick Lamar Count Me Out
Flume Bon Iver
Then click Bulk Add Top Results.
The app will search each line, take the top YouTube result, and add it to the queue.
Controls
- Play starts the selected/current queue item
- Pause pauses playback
- Next moves to the next queued item
- Start Over restarts the current track
- Remove Current removes the currently selected track
- Progress bar can be dragged to seek through the current video
- Vertical volume bar controls playback volume
- Mute toggles mute independently from the volume level
- Expand enlarges the video viewer
Notes
Some YouTube results may show as unavailable. This can happen when a video is private, region restricted, deleted, or blocks embedded playback.
The app uses YouTube search metadata and embedded playback. It does not download or extract audio files.
Troubleshooting
If search does not work, click Check API Key inside the app.
If the app says no API key is loaded, make sure the key is placed in the API_KEY variable near the top of stream.py.
If the app window opens but playback does not work, make sure Microsoft Edge WebView2 Runtime is installed.
If the font does not look like Source Code Pro, install Source Code Pro or SauceCodePro Nerd Font on Windows.
Project Status
This is a local-first desktop app prototype for building and playing a YouTube-based music queue without hosting a public web service.