Skip to content
Changelog
1.0.0
- First public release. No functional change from 0.12.1: the number marks the point the extension went to the Chrome Web Store, not new work. What is in it is everything below — frame-accurate looping, saved loops, chapters, repeat counts and playback speed, measured on real YouTube pages rather than a fixture.
0.12.1
- Fixed: the toolbar button showed Chrome's generic placeholder instead of the LoopPoint icon. The extensions page and the Web Store read one icon setting, the toolbar button reads another, and only the first had ever been declared.
0.12.0
- Removing the extension now opens a short page asking why. Answering is optional, the address carries no identifier of any kind, and the page has no server behind it — the form composes an email you can read and edit before sending, or not send at all.
0.11.5
- Chapter titles are the right length. Each entry in YouTube's panel carries its own title several times over — visible label, accessible label, tooltip — so a title built from the entry's text came out repeated. Any number of exact repetitions now collapses to one, while a title that genuinely repeats a word is left alone.
0.11.3
- Chapters finally show their names. The chapter panel was being read correctly all along — the times were right — but the title element inside each entry did not match the selector, so every name came back empty and was replaced by "Chapter 1", "Chapter 2". Titles are now taken from the entry's own text with its timestamp removed, which does not depend on YouTube's internal structure.
- Opening the popup logs which source the chapters came from and what each source could see, so a wrong answer can be diagnosed from one line rather than three guesses.
0.11.1
- Chapters really do show their real names now. 0.11.0 read the description with line-anchored parsing, which fails on the real page twice over: YouTube separates lines with
<br>, which does not become a newline in text, and a collapsed description reads as empty because hidden elements have no rendered text. Chapters are now found in a run-together description, hidden or not.
0.11.0
- Chapters show their real names. They were appearing as "Chapter 1", "Chapter 2" on most videos, because names only exist in YouTube's chapter panel and that panel is not in the page until the viewer opens it. Chapters are now also read from the description, where creators actually write them and which is always present.
0.10.2
- A more compact popup. The loop's length moved onto the same row as its A and B, and the "Looping" line is gone — the button beneath it already reads Pause or Resume, which says the same thing in the place you would act on it. Looping now shows as a mark on the loop itself.
0.10.1
- Test-only: fixed the suite's one flaky test.
0.10.0
- The popup shows which chapter is playing. The current chapter is marked and carries a fill showing how far through it you are; collapsed, the header names it, so
▸ CHAPTERS · Guitar solo tells you where you are without expanding anything.
0.9.2
- The chapter list starts collapsed. The heading and its count are still visible, so the feature announces itself without a long list burying the saved loops.
0.9.1
- The chapter list collapses, and remembers whether you left it open.
- Fixed: the popup's Save button was missing entirely — saving worked only from the panel's ★, and the popup's save handler had never been reachable.
0.9.0
- Chapters as starting points. On a video with chapters, the popup lists them above your saved loops. Click one to load and play it, then narrow the ends and keep it with ★. Chapters are usually minutes long where a practice loop is a phrase, so they are offered as a place to start rather than as ready-made loops.
- Names and times come from the chapter panel; if that is not present the segmented progress bar supplies boundaries with generated names; if neither is there, no section appears at all.
0.8.4
- Removed the
modulepreload hints from the popup and options page. Preloading exists to hide network latency and an extension page loads from local disk, so they bought nothing, shipped an extra chunk, and made Chrome log a warning about a hint it decided had gone unused. One less confusing message in the console.
0.8.3
- The popup and options page now show what went wrong, on the page, instead of failing to a blank box. Extension pages are awkward to debug — the popup closes the moment it loses focus — and Chrome's own error list reports the module script's line number and calls the frame "(anonymous function)", which says nothing about the cause.
0.8.2
- Fixed: renaming or deleting a saved loop could raise an uncaught error against the popup. The popup closes the moment focus leaves it, so the write was still in flight when its own page was torn down, and those two operations were the only ones in the storage layer that did not swallow a failure. A write that fails is now a rename that did not happen, rather than an error with a stack pointing at nothing useful.
0.8.1
- Fixed: loading a saved loop from the popup did not start playing it. The loop was applied but the playhead stayed where it was, so nothing audible happened — and if it sat past the new end point, nothing ever would. Choosing a loop from a list now jumps to its start and restarts its repeat count. Editing the loop you are already in still leaves the playhead alone.
0.8.0
- Save loops and come back to them. The ★ in the panel keeps the current loop; the popup lists everything saved for that video, and a click loads one back. Rename with ✎, delete with ✕. Saving takes one click and names the loop after its range — being made to name something before you can keep it is how a feature goes unused.
- Up to 50 saved loops per video, newest first.
0.7.0
- Repeat a set number of times. Pick a count in the panel and the loop plays that many times, then carries on with the video rather than looping forever. The loop toggle doubles as the countdown (
⟳ 3/5), and the marks stay behind so the same loop can be run again. ∞ — loop forever — remains the default.
- The count is saved with the loop, so a practice loop comes back with its repeats.
0.6.6
- Playback speed now applies exactly when the loop does. Switching looping off hands the speed back to whatever it was before the loop was marked; switching it on takes it again; clearing the loop hands it back for good. The loop still remembers its speed, so a loop restored tomorrow comes back at the speed you were practising it at.
- Fixed: a restored loop's speed only took effect after the first lap, rather than immediately.
0.6.5
- Fixed: changing playback speed from YouTube's own menu lasted one lap. Every loop-back re-asserts the loop's stored rate, so an outside change was silently dragged back — the extension overruling the player's controls, with no way for the user to win. Whoever changed the speed last now wins, and the panel follows.
- Clearing a loop puts the playback speed back to what it was before the loop was marked, but only if the speed is still the one LoopPoint set. Toggling looping off keeps it: toggling keeps the marks, so it keeps their speed too.
0.6.4
- Removed the
buffering loop… line. It was either invisible — YouTube reads far enough ahead that a loop you have been watching is always buffered — or wrong, firing on every [ because marking A alone leaves B at the end of the video. The underlying measurement stays where it is useful: the seam report counts laps that ran with the loop region buffered, which is how a network stutter is told apart from a bad cut.
0.6.3
- Fixed: typing a time into the panel's own A or B field fired the keyboard shortcuts as well. A listener on
document never sees inside a shadow root — the browser retargets the event to the host — so our own input arrived looking like a plain <div> and the typing guard let it through.
- Fixed: one unusable key binding in storage disabled every shortcut. Bindings are now validated one at a time and fall back to the default individually.
- The console now prints the bindings actually in force when the extension attaches, rather than a fixed list of the defaults, which is a guess once keys are configurable.
0.6.2
- Fixed: with a loop marked, YouTube's subtitles, settings and fullscreen buttons stopped responding. Marking A alone leaves B at the end of the video, putting that handle at the far right edge of the progress bar — and its invisible grab area hung below the bar, directly over those buttons. Markers now grow upward only, and the panel no longer takes pointer events anywhere except the panel itself.
0.6.1
- Fixed:
buffering loop… appeared every time you pressed [. Marking A alone leaves B at the end of the video, so the "loop" was the whole remainder — never bufferable, and the warning fired before you had finished marking anything. The check now ignores loops longer than a minute, which no browser reads ahead far enough to hold; a permanent warning about a region nobody could buffer is noise rather than news.
0.5.1
- Fixed: resuming a loop from outside it did nothing. The predictive trigger only fires as the playhead approaches B, so from beyond B it could never fire again — looping reported itself as on while the video played to the end. Since scrubbing out is what turns looping off, this was the common case rather than a corner.
0.5.0
- Options page: seam mode, audio fade, marker visibility, auto-restore, key bindings, and storage management.
- Popup showing the current loop, with quick set, toggle and clear.
- All five keyboard shortcuts are rebindable, with conflict detection and a warning for keys YouTube already uses.
Alt+L toggles looping globally.
- Settings take effect in open tabs immediately, with no reload.
0.4.0
- The loop region is checked against the video's buffer; the panel says
buffering loop… when the first lap will stutter because of the network rather than the seam.
- Scrubbing outside the loop now says so, and says how to resume, instead of silently switching looping off.
- Panel drags to any corner of the player and remembers which one.
- Panel stands down in the miniplayer, and announces the loop to screen readers.
0.3.0
- Loops are remembered per video: reopen a video and its loop comes back.
- An ad mid-loop no longer corrupts the loop. The ad's own duration was being taken for the video's, which clamped a loop marked at 1:23 into a fifteen-second timeline.
0.2.0
- In-player UI: draggable A/B markers on the progress bar and a control panel with times, nudge, inline editing, loop toggle and playback speed.
0.1.0
- The loop engine: frame-accurate cut back to A, measured against real YouTube.
- Fixed before it ever worked: the packaged content script did not parse, so the extension had never run in a browser at all.