# JaTubePlayer — User Interface Guide ## Main Window ### Top Bar ![螢幕擷取畫面 2026-03-03 201037](https://hackmd.io/_uploads/HyZxb8EtWe.png) | Control | What it does | |---|---| | **Search box** ("Search YouTube…") | Type a video title, channel name, or keyword here and press **Enter** or click the search button to search YouTube. | | **🔎 Search button** | Runs a YouTube search using whatever is typed in the search box. | | **📁 Playlist dropdown** | Shows your saved YouTube playlists. Select one from the list before clicking Enter Playlist. | | **▶ Enter (Playlist) button** | Loads the playlist selected in the dropdown into the playlist panel on the right. | The coloured dots on the far-right of the top bar are **status indicators** (Chrome Link, Discord, Google account). They are read-only — they just tell you whether each service is connected. --- ### Right Panel — Playlist ![螢幕擷取畫面 2026-03-03 201044](https://hackmd.io/_uploads/SyY-bLEFZg.png) | Control | What it does | |---|---| | **Playlist list** | Shows all videos currently loaded. Single-click to select a video; double-click to play it immediately. | | **▶ Play button** | Plays whichever video is currently selected (highlighted) in the list. | | **✨ Recommend button** | Loads a list of video recommendations based on your watch history. Requires "Record playback history" to be on. | | **★ Star button** | Loads your personally starred (saved) videos into the playlist. | | **📺 Subscription button** | Loads your YouTube subscriptions into the playlist. Requires Google login. | | **❤ Like button** | Loads your YouTube liked videos into the playlist. Requires Google login. | | **📄 File button** | Opens a file picker so you can load one or more local video or audio files. | | **📁 Folder button** | Opens a folder picker and loads all supported media files in that folder as a playlist. | | **◀ Prev button** | Goes to the previous page of results (for subscriptions, liked videos, etc.). | | **Next ▶ button** | Goes to the next page of results. | --- ### Video Area Clicking anywhere on the video itself **toggles play / pause**. Scrolling the mouse wheel over the video area **adjusts the volume**. --- ### Bottom Transport Bar ![螢幕擷取畫面 2026-03-03 201141](https://hackmd.io/_uploads/Sy_V-U4tZl.png) #### Now Playing strip Shows the title of the currently playing video. Read-only. #### Progress slider Drag left or right to **seek** (jump) to any position in the video. The time counter on the left shows the current position; the one on the right shows the total duration. #### Playback Mode (radio buttons — pick one) | Button | What it does | |---|---| | **▶▶ Continue** | Plays through the playlist from start to finish, then stops. | | **🔁 Replay** | Repeats the current video endlessly. | | **🔀 Random** | Picks the next video at random from the playlist. | #### Playback Controls | Button | What it does | |---|---| | **⏮ Previous** | Skips back to the previous video in the playlist. | | **▶ / ⏸ Play/Pause** | Starts or pauses playback. | | **⏹ Stop** | Stops playback and resets the position to the beginning. | | **⏭ Next** | Skips forward to the next video in the playlist. | | **⛶ Fullscreen** | Toggles fullscreen mode on or off. | #### Volume slider (🔊) Drag to **set the volume** from 0 (mute) to 120 (max, which is above 100% for boosting quiet videos). You can also scroll the mouse wheel over it. #### Action Buttons | Button | What it does | |---|---| | **⚙️ Settings** | Opens the Settings window. | | **☆ Star** | Toggles the current video in/out of your personal starred list. The icon fills in (★) when it is starred. | |**Sel**|Load selected video infomation |**Now**|Load currently playing video infomation --- ## Settings Window Opened via **⚙️ Settings**. Has seven tabs. --- #### General ### Tab: Advanced Player Setting ![螢幕擷取畫面 2026-03-03 201203](https://hackmd.io/_uploads/HJlYcWUNKbg.png) | Control | What it does | |---|---| | **Max Resolution** dropdown | Sets the highest video quality the player will stream. Choices: 480p, 720p, 1080p, 1440p, 2160p (4K), 4320p (8K). Lower values save bandwidth. | | **Auto retry on error** checkbox | If a video fails to load (e.g. network hiccup), the player automatically tries again instead of giving up. | | **Audio only mode** checkbox | Disables the video track entirely — only audio plays. Useful for listening to music while saving data or GPU. | #### Speed & Subtitle ![螢幕擷取畫面 2026-03-03 201209](https://hackmd.io/_uploads/rkL3b8Etbg.png) | Control | What it does | |---|---| | **Playback Speed** slider (0.3× – 3.0×) | Speeds up or slows down the video. 1.0× is normal. 2.0× plays at double speed, 0.5× at half speed. | | **Subtitle** dropdown | Selects which subtitle track to show. Choosing "No subtitles" turns them off. | #### Cache & Buffer ![螢幕擷取畫面 2026-03-03 201220](https://hackmd.io/_uploads/HyM6-84tZl.png) These control how much video is pre-downloaded into memory to prevent buffering interruptions. | Control | What it does | |---|---| | **Cache Duration** slider (10 – 300 s) | How many seconds of video to buffer ahead. Higher = smoother playback on slow connections, but uses more memory. | | **Max Buffer Size** slider (16 – 2048 MB) | Maximum memory the player may use for the forward buffer. Higher lets more video be held in RAM. | | **Max Back Buffer** slider (16 – 2048 MB) | How much already-played video is kept in memory. Higher means you can rewind further without re-downloading. | | **Cache Pause Wait** slider (0.1 – 20 s) | If the buffer runs low, the player pauses and waits this many seconds for the buffer to refill before resuming automatically. | | **Audio Wait Open** slider (1 – 10 s) | How long the player waits for the audio stream to become available when opening a video before it times out. | #### Fullscreen ![螢幕擷取畫面 2026-03-03 201228](https://hackmd.io/_uploads/rJY6WI4Fbl.png) | Control | What it does | |---|---| | **Auto fullscreen on open** checkbox | Automatically goes fullscreen every time the app is lanched with `openwith` function. | | **Hover Fullscreen** checkbox | In fullscreen, shows the playback controls when you hover the mouse near the bottom of the screen. | | **Fullscreen Mode — Normal** radio | The window fills up your monitor, with only video frame and control section visible | | **Fullscreen Mode — Fullscreen (all widgets)** radio | The entire app window expands to fill the monitor, keeping all buttons visible. | | **Fullscreen Mode — Fullscreen to window** radio | The video expands to fill just the app window (not the whole monitor). | #### Advanced ![螢幕擷取畫面 2026-03-10 025705](https://hackmd.io/_uploads/S1OX_53KWg.png) | Control | What it does | |---|---| | **Acrylic blur effect** checkbox | Turns on the Windows acrylic/frosted-glass transparency look on the app windows. | | **Show MPV Log** button | Opens a separate log viewer window showing detailed playback messages — useful for diagnosing problems. | | **Enable Drag and Drop** checkbox | Lets you drag a video or audio file from Explorer straight into the player. A restart is required for the change to take effect. | | **Force Stop Loading** button | Immediately cancels a video that is stuck loading. Use this if a video hangs and does not respond. | | **Show Cache Info** checkbox | Displays a small real-time cache usage indicator while a video is playing. | **Choose Color button**| Opens the color picker used to customize the blur gradient overlay color applied to the player interface. **Set Default button**| Restores the blur gradient color to the application's default value. Useful if custom colors make the UI difficult to read. #### Color Picker ![螢幕擷取畫面 2026-03-10 025826](https://hackmd.io/_uploads/BJhfF53Ybe.png) The color picker allows precise adjustment of the blur gradient color. | Control | Function | | --------------------- | ------------------------------------------------------------------------ | | **Color wheel** | Selects the base hue (red, blue, green, etc.). | | **Brightness slider** | Adjusts how bright or dark the chosen color is. | | **Alpha slider** | Controls transparency of the overlay tint. | | **Hex preview box** | Shows the resulting color in hexadecimal format used by the application. | | **OK button** | Applies the selected color to the interface. | ##### Tips For the best visual results with acrylic blur: * Lower **Brightness** * Lower **Alpha** This produces a **soft translucent tint** that blends well with the Windows acrylic effect. Very bright or fully opaque colors may reduce the visibility of UI elements. --- #### External Services ![螢幕擷取畫面 2026-03-03 201241](https://hackmd.io/_uploads/SJGFfUEF-e.png) | Control | What it does | |---|---| | **Chrome extension server** toggle | Starts or stops the local server that lets the JaTubePlayer Chrome extension send videos to the player. | | **Discord Rich Presence** toggle | Enables or disables the Discord status integration (shows "Listening / Watching" on your Discord profile). | | **Show playing on Discord** checkbox | When Discord Rich Presence is on, this controls whether the actual video title is shown. Turn it off to show a generic "idle" status instead. | --- ### Tab: Personal Playlist #### YouTube Data ![螢幕擷取畫面 2026-03-03 201248](https://hackmd.io/_uploads/ryY5GI4t-x.png) | Control | What it does | |---|---| | **Update Liked Videos** button | Fetches your current YouTube liked-videos list from the internet and saves it locally. | | **Auto-update liked videos** checkbox | Automatically refreshes the liked-videos list every time when the `liked` button is clicked and before the playlist is loaded (requires internet). | | **Update Subscriptions** button | Fetches your current YouTube subscriptions list and saves it locally. | | **Auto-update subscriptions** checkbox | Automatically refreshes the YouTube subscriptions list every time when the `subscribed` button is clicked and before the playlist is loaded (requires internet).| | **Update Playlists** button | Refreshes the list of your YouTube playlists so they appear in the top-bar dropdown. | #### History ![螢幕擷取畫面 2026-03-03 201253](https://hackmd.io/_uploads/B1J1SLVtZg.png) | Control | What it does | |---|---| | **Record playback history** checkbox | Switch history tracking. | | **Reset History** button | Permanently clears all saved watch history and set to default. | #### Remove from Playlist ![螢幕擷取畫面 2026-03-03 201258](https://hackmd.io/_uploads/B15XS8NYZe.png) | Control | What it does | |---|---| | **Remove Selected** button | Removes the item currently selected in the playlist from the current playlist view. This does **not** delete anything from YouTube, your disk, or any other source — it only removes it from the list shown right now. | --- ### Tab: Download ![螢幕擷取畫面 2026-03-03 201310](https://hackmd.io/_uploads/SJoVSIEtZg.png) Use this tab to save a video or its audio to your computer. | Control | What it does | |---|---| | **Audio (MP3)** radio button | Sets the download format to audio-only (MP3). Resolution selection is disabled in this mode. | | **Video (MP4)** radio button | Sets the download format to video (MP4). You must also choose a resolution. | | **Get Available** button | Fetches all available resolutions for the currently selected video from YouTube. | | **Resolution** dropdown | Enter , or after clicking "Get Available", select the quality you want to download (e.g. 1080, 720, 480). | | **Select Path** button | Opens a folder picker to choose where downloaded files are saved. | | **Set Default** button | Resets the download location back to the built-in default folder inside the player's directory. | | **Download Selected Video** button | Starts the download using the format and resolution you selected. A progress indicator popup will appears while downloading. | --- ### Tab: Quick Init ![螢幕擷取畫面 2026-03-03 201317](https://hackmd.io/_uploads/H1mKB8EYbx.png) Quick Init lets the player automatically load a playlist source when it starts up, so you don't have to click anything each time. | Control | What it does | |---|---| | **Enable quick startup** checkbox | Master switch — turns the whole Quick Init feature on or off. Everything below is disabled while this is off. | | **Init Search** radio + text box + **Set Init Search** button | Type a search query in the box, then click Set Init Search. On the next startup the player will automatically search that term and load the results. | | **Init Playlist** radio + dropdown + **Get Playlist** + **Set Playlist** buttons | Click Get Playlist to load your YouTube playlists into the dropdown, choose one, then click Set Playlist. On startup the player will load that playlist automatically. | | **Init Local Folder** radio + **Select Folder** button | Choose a folder on your computer. On startup the player will load all media files from that folder. | | **Init Recommendation** radio | On startup the player will load video recommendations based on your watch history. Requires "Record playback history" to be on. | The text display at the top of the tab shows what the current Quick Init is set to. --- ### Tab: Account & Authentication This tab manages your Google account, YouTube API key, browser cookies, and OAuth credentials. #### Google Account ![螢幕擷取畫面 2026-03-03 201330](https://hackmd.io/_uploads/SyYsBI4KWg.png) | Control | What it does | |---|---| | **Login Google** button | Opens a browser window for you to sign in with your Google account. Required for accessing liked videos, subscriptions, and playlists. | | **Logout Google** button | Signs you out and removes your login session and stored data (liked vids, subed channels). | | **Delete System Key** button | Deletes everything — your login session, the stored API key, and all the encryption keys used to protect them. Use this to completely reset authentication from scratch. | #### API Key ![螢幕擷取畫面 2026-03-03 204239](https://hackmd.io/_uploads/ryX8vUVtWg.png) | Control | What it does | |---|---| | **YouTube API entry box** | Paste your YouTube Data API v3 key here. | | **Set API** button | Saves the API key you typed. After setting a new key, you need to re-login with Google. | | **Delete Stored API** button | Removes the saved API key from the player. | #### Cookie ![螢幕擷取畫面 2026-03-03 201407](https://hackmd.io/_uploads/S1BPw8EK-x.png) | Control | What it does | |---|---| | **Select Cookie** button | Loads a `cookies.txt` file exported from your browser. This is useful for accessing `age-restricted videos`,`Member only video`, and bypass the ytdlp bot limitation . | | **Remove Cookie** button | Removes the currently loaded cookie file from the player. | #### Client Secrets Cookie![螢幕擷取畫面 2026-03-03 201412](https://hackmd.io/_uploads/rk6Lv8VYWx.png) | Control | What it does | |---|---| | **Select Client Secret** button | Loads the `client_secret.json` file from your Google Cloud project. Required for the Google OAuth login to work. | | **Remove Client Secret** button | Removes the loaded client secret file from the player. | --- ### Tab: Version Info ![螢幕擷取畫面 2026-03-03 201438](https://hackmd.io/_uploads/By0xO84Ybe.png) | Control | What it does | |---|---| | **Update** button (yt-dlp section) | Downloads and installs the latest version of yt-dlp (the engine that fetches YouTube streams). Useful when videos stop playing due to YouTube changes. | | **Visit Website** (yt-dlp) | Opens the yt-dlp GitHub releases page in your browser. | | **Visit Website** (JaTubePlayer) | Opens the JaTubePlayer GitHub releases page in your browser. | | **Check version at startup** checkbox | Automatically checks whether a newer version of yt-dlp or JaTubePlayer is available each time the app starts. | Current and latest version numbers are shown as read-only labels for both yt-dlp and JaTubePlayer. --- ### Tab: Hotkeys Global keyboard shortcuts that work even when the app is not in focus. #### Set Hotkey section ![螢幕擷取畫面 2026-03-03 201449](https://hackmd.io/_uploads/Hy4GdIEtWe.png) | Control | What it does | |---|---| | **Function** dropdown | Pick which action you want to assign a hotkey to (e.g. Play/Pause, Next, Volume Up). | | **Set Hotkey** button | Minimises the settings window and listens for your key combination. Press the keys you want, and they are automatically recorded and saved. | | **Reset All to Default** button | Resets every hotkey back to the factory defaults all at once. | #### Current hotkey display panels (read-only) These panels show the currently assigned key combination for each action: | Action shown | What the hotkey does | |---|---| | **Play / Pause** | Toggle playback | | **Stop** | Stop the current video | | **Next Video** | Skip to the next item in the playlist | | **Previous Video** | Go back to the previous item | | **Repeat Mode** | Switch playback mode to Repeat | | **Random Mode** | Switch playback mode to Random | | **Continuous Play** | Switch playback mode to Continue (sequential) | | **Volume Up** | Increase volume | | **Volume Down** | Decrease volume | | **Toggle Minimize** | Minimize or restore the player window |