Overview
Auto-advance YouTube Shorts after N playthroughs (repeat 0/1/2). Click icon toggles enable; right-click context menu sets repeat.
Purpose Automatically advances to the next YouTube Short after it has played the configured number of times (repeat 0, 1, or 2), even if the browser window is unfocused, keeping binge viewing hands‑free. Core Features Auto‑advance logic: Detects a completed playthrough using multiple signals (ended event, timeupdate loop detection, seeked, and a fallback 1s polling loop for throttled/unfocused tabs). Repeat control: Session‑only in‑memory repeat count (0,1,2) set via right‑click context menu; no persistence or storage permission. Enable/disable toggle: Left‑click the extension icon to turn auto‑advance on or off (session only). Animated icon: Cycles through frames (icons/anim/icon(0–9).png) when enabled and the active tab is on a Shorts video; static colored/grey icon elsewhere or when disabled. Robust URL handling: Works on multiple Shorts URL variants (www.youtube.com/shorts/ID, youtube.com/shorts/ID, with queries). Fallback injection: Background service worker dynamically injects the content script if navigation occurs before static matching fires. Loop detection resilience: Polling interval ensures wrap detection when Chrome throttles media events in a background/unfocused window. Debounce & user interaction suppression: Short delay windows cancel auto advance if the user interacts (wheel, click, key, touch). Technical Architecture Manifest v3. Service worker (background.js) manages: In‑memory state: enabled flag and repeatCount. Context menus for repeat selection and toggle. Animated icon frame loop (conditional on active Shorts tab). Navigation and tab events to refresh animation and inject content script. Broadcasting state to all Shorts tabs via runtime messages. Content script (content.js) handles: Attaching to the current Shorts video element. Counting playthroughs (wrapCount) based on events and fallback polling. Respecting repeatCount and enabled state from messages. Advancing via preferred next button > anchor fallback > simulated ArrowDown key. SPA / navigation changes (URL polling + YouTube’s internal navigate event). No storage, no popup usage (popup files are vestigial and can be removed). Session‑only behavior (state resets on browser/service worker restart). User Flow Install extension. Navigate to any YouTube Short. Right‑click icon to choose repeat mode (0/1/2). Left‑click to toggle enable/disable. Watch Shorts; they auto‑advance after the configured number of complete loops—including while you’re in another application. Limitations State not persisted across browser restarts. Repeat range currently limited to 0–2. Animated icon only reflects enabled state when active tab is a Shorts page; not per-tab if multiple Shorts tabs are open. Some style/lint warnings (e.g., window vs globalThis) intentionally ignored for functionality. Popup and settings artifacts are unused and could be cleaned out for a leaner build. Potential Improvements (easy next steps) Persist enabled/repeatCount with chrome.storage (optional). Extend repeat range (0–5 or custom). Overlay indicator on the video showing remaining loops. Animation pause when video paused; resume on play. Clean lint/style warnings for long‑term maintainability. Remove unused popup/settings files to reduce package size. Smarter loop detection (e.g., using playback position deltas + ended fallback only if duration > threshold). Edge Case Handling Multiple rapid loop signals debounced (350 ms). User interaction shortly before auto‑advance cancels and resets counters. Fallback poll ensures progress while unfocused or when events are throttled. SPA reattachment triggers on URL change, YouTube navigate finish, and visibilitychange.
Details
- Version0.1.7
- UpdatedOctober 31, 2025
- Size72.37KiB
- LanguagesEnglish
- Developer
Email
info@omariskandarani.com - Non-traderThis developer has not identified itself as a trader. For consumers in the European Union, please note that consumer rights do not apply to contracts between you and this developer.
Privacy
This developer declares that your data is
- Not being sold to third parties, outside of the approved use cases
- Not being used or transferred for purposes that are unrelated to the item's core functionality
- Not being used or transferred to determine creditworthiness or for lending purposes