LoopLlama Help
LoopLlama is a browser-based YouTube controller for close study of video content. If you want to loop a passage, slow down or speed up a video, mark moments to return to, or annotate a video’s structure, LoopLlama is built for that. A common use case is learning from instructional or performance videos — a musician working through a song, for instance — but the app is not specific to music or any other domain.
The keyboard-first design means you can drive the app efficiently: Vim-inspired key bindings cover every operation. For those who prefer a mouse, the usual menus, buttons, and other controls, plus a clickable visual timeline, provide similar access.
Quick start
Load URL. To load a YouTube video into
LoopLlama, see the Video › Load URL menu item. Notice its two key
bindings: vl or y. When you run the operation, you can paste either a full
URL or just the YouTube video ID (an example to try: QQ5XMmV7-bY). After the
video loads, notice that video name and YouTube ID are shown in the
Current panel.
Basic controls. Operations to play, pause, seek, and adjust the playback speed are available in familiar buttons, text boxes, and dropdowns in the app’s main controls. Key bindings for the most common actions are the following:
| Key | Operation |
|---|---|
Space |
Play/pause |
Left |
Seek: backward |
Right |
Seek: forward |
Down |
Seek delta: decrease |
Up |
Seek delta: increase |
- |
Speed: decrease |
= |
Speed: increase |
⌫ |
Speed: reset to 100% |
jj |
Jump to a time |
Basic looping. The controls in the Scratch Loop area allow you to loop a specific part of a video. If looping is toggled on, video playback and seek will adhere to the loop bounds: when the playhead reaches the end it will wrap around to the loop start; and seek movements will be confined to the loop boundaries. Here are the most important key bindings:
| Key | Scratch loop operation |
|---|---|
xx |
Toggle looping on/off |
[[ |
Set loop start to current time |
]] |
Set loop end to current time |
Informational elements. The app provides information in various ways.
-
Current panel: lists information about the current video.
-
Timeline: mimics the YouTube progress bar and provides a visual overview of the information the user has attached to the video; supports hover for information and click to jump.
-
Controls: hover to display labels and key bindings.
-
Message footer: displays informational, warning, and error messages.
-
Key binding help: displayed in the footer area when the user types the first character of a two-character binding.
Gotcha: app focus. If you click anywhere in the YouTube frame, the LoopLlama app loses focus and its key bindings become inactive. When that occurs, a warning is shown in the footer. The fix is simple: click anywhere in the app outside of the YouTube frame. The clickable LoopLlama timeline makes clicking in the YouTube frame rarely necessary.
Gotcha: captions reappearing. If a video’s captions
appear and you do not want them, click in the YouTube frame, press c, and
then click outside the frame. Depending on your web browser, this preference
might reset later — for example, after a browser restart. To make the fix
permanent, allow third-party cookies for the LoopLlama web page.1
Entities: the next step. For many users — those who simply want to loop or change the speed of YouTube videos using an efficient user interface — everything you need to know has been covered. But if you work with some videos in depth (for example, transcribing a musical performance), being able to attach additional information to the video is powerful. That information is organized around five types of entities: videos, sections, chapters, marks, and loops.
Videos
The first entity is obvious: videos. Once you open a YouTube video in LoopLlama, the app remembers the video and how you last left it: the current playhead position, the playback speed, the scratch loop endpoints, and any other information about the entities that a video can have.
Load examples. Use he for Help › Load
examples, which will load two example videos pre-configured with various
sections, chapters, marks, and loops. You can use those examples along with
the help documentation to learn how the app works.
| Example | Video | Description |
|---|---|---|
| Ex1 | Catfish blues | Song with all entities |
| Ex2 | Edith Pageaud | Concert with songs as chapters |
Open. Use vo for Video › Open to open a
video you loaded previously into LoopLlama.
Key binding overview. Bindings follow a two-character system: (a) the
first character is an entity prefix; (b) the second is a mnemonic for the
operation. For example, vo for Video › Open or ce for Chapter ›
Edit. The most common operations also have shortcut bindings for easier
typing (see the Video and App menus for several examples). The help
documentation mainly uses the formal two-character bindings. Also note that
some key bindings accept a preliminary count — a number typed before the
binding — to multiply the effect of the operation (see key
bindings).
Edit. Use ve for Video › Edit to change
the video name (by default, the title provided by the YouTube player) or to
set custom start and end times for the video — for example, to exclude filler
material that you rarely watch when looping or zooming a video.
Zoom. Use vz for Video › Zoom to focus the
timeline view to a video’s custom start-end range, if you have set one.
Zooming. Zooming of any kind — whether for a video,
section, chapter, saved loop, or scratch loop — constrains both the timeline
view and the playhead itself to the zoomed range. Zoom can be toggled off
either by repeating the command used to invoke it (for example, vz in the
case of Video › Zoom) or via az for App › Zoom off, which turns
off any kind of zooming.
Scratch. Use vx for Video › Scratch to
loop an entire video (or the range defined by its custom start/end values).
The scratch operation loads the start and end times into
the scratch loop — the app’s work area for looping.
Info. Use vi for Video › Info to see all
of the LoopLlama information about a video.
Delete. Use vd for Video › Delete, which
allows you to select a video for deletion. The app also provides an operation
to delete data in bulk and an unstash
operation to restore a previously deleted video.
Unstash. Use vu for
Video › Unstash, which restores a video from a stashed copy. A stash is
created whenever a video is deleted (via Video › Delete or Data ›
Delete) or replaced (via Data › Import, Data › Read from cloud, a
prior Video › Unstash, or loading a share URL for a video already in your
library). The picker lists all stashed video copies, both for videos that
still exist in your library and for those that do not (the latter are marked
in the picker). For videos still in the library, the unstash is a swap: the
stashed copy becomes current and the current copy is saved as the new stash.
Sections
Sections provide a way to divide a video into non-overlapping parts. What those segments represent is up to you: a musician might label them Intro, Verse, Chorus, Solo; someone studying a lecture might label them by topic; a language learner might use them to mark speaker turns.
Create. Use ss for Section › Create, which
creates a new section with its start at the playhead position. After creating
a section, notice the visual change in the timeline. The section end is
inferred from the start of the next section (or the video end).
Edit. Use se for Section › Edit, mainly to
give the current section a name or to adjust its start/end values. The section
name will appear in the timeline area, below the blue progress bar.
Scratch. Use sx for Section › Scratch,
which loads the section’s start and end into the scratch loop.
Jump. Use sj for Section › Jump, which
allows you to select any section and jump the playhead to its start.
Zoom. Use sz for Section › Zoom, which
will focus the timeline on the current section (see zooming).
Delete. Use sd for Section › Delete,
which allows you to select a section for deletion.
Menu ellipses. On the Section menu, notice that Delete and Jump have trailing ellipses. That convention conveys that the operation will occur through an interactive picker where you first select the section to be deleted or jumped to. The other menu items have no ellipses, because they operate on the current section — meaning the one where the playhead sits. This convention is followed across all of the app’s menus, with a small exception for saved loops, which can overlap. On the Loop menu, the Edit, Scratch, and Zoom operations have no ellipses. If they are invoked when only one saved loop resides at the playhead position, the operation will occur immediately; otherwise, the app first prompts the user with an interactive picker to select the intended saved loop.
Chapters
Chapters are similar to sections: they divide a video into non-overlapping
parts; they support the same operations; and their key bindings are directly
parallel to the section bindings, but with the c prefix rather than s.
So if you understand sections, you also understand chapters. But there are two differences worth pointing out:
Default timeline view. By default, the timeline
area shows sections, not chapters. That view can be toggled via at for App
› Toggle timeline. LoopLlama will remember each video’s most recent setting.
Regardless of the timeline’s current display status, the current chapter and
section, if defined, are both listed in the Current panel.
Design intent. The app was built with the premise that chapters are bigger (for example, songs in a concert) and sections are smaller (for example, the parts of a song), but you are not required to follow that model.
Marks
Marks are the simplest entities — nothing more than a time point. They are displayed as yellow dots in the timeline, below the sections/chapters. The operations and key bindings are simple and follow the conventions already established for sections and chapters (see the Mark menu).
Current mark. The only wrinkle is how “current” is defined for Mark › Edit: it is the nearest mark at or before the playhead.
Loops
The entity tour postponed loops until the end because they sit at the center of the app’s mission. There are several sub-topics to cover.
Saved loops
Saved loops are similar to chapters and sections in that they define a range via their start and end. They are more generic because their purpose is not to partition a video into non-overlapping parts: saved loops can overlap, which has two important implications.
-
Current saved loop. Operations that apply to the current saved loop, based on playhead position, go through an interactive picker to select the loop of interest whenever there are multiple loops at the playhead (related details).
-
Timeline display. Saved loops are displayed at the bottom of the timeline area as brown line segments. This part of the timeline has two “lanes” — enough real estate to display up to two overlapping loops unambiguously. When the number of overlaps is greater than that, the segments are merged, but the start and end points of loops within the merged segment are marked with visual dividers. You can use those dividers, along with mouse hovers over the line sub-segments, to see where the overlapping loops start and end.
The key bindings and menu items for saved loops are similar to those for sections and chapters.
Create. Use ll for Loop › Create, which
creates a new saved loop using the current bounds of the scratch loop.
Edit. Use le for Loop › Edit to edit the
current loop’s name or adjust its bounds.
Jump. Use lj for Loop › Jump to select
a saved loop and move the playhead to its start.
Zoom. Use lz for Loop › Zoom to focus the
timeline on the bounds of the current saved loop (see zooming).
Delete. Use ld for Loop › Delete to
select a saved loop for deletion.
Scratch. Use lx for Loop › Scratch to load
the current loop’s bounds into the scratch loop — our next topic.
Scratch loop
The scratch loop is the active working area for looping. When the scratch loop bounds produce a valid loop — meaning start less than end — the text boxes display the values in regular font (red font when the bounds are invalid). If the scratch loop is valid, the following operations are supported.
Toggle. Use xx for Scratch › Toggle to
turn looping on/off.
Zoom. Use xz for Scratch › Zoom to focus
the timeline on the bounds of the scratch loop (see zooming).
Scratch operation
As mentioned in the documentation for videos, sections, chapters, and saved loops, entities with a start and end support the scratch operation, which loads the bounds of a saved entity into the scratch loop work area.
Although the terminology is idiosyncratic, the app’s menu labeling and key binding scheme benefit from keeping a clear distinction between saved loops and the scratch loop.
| Loop type | Menu | Binding prefix |
|---|---|---|
| Saved loop | Loop | l |
| Scratch loop | Scratch | x |
Scratch loop edit mode
Although you can edit bounds directly via the scratch loop controls, LoopLlama
also provides a special keyboard mode to make such adjustments. The mode can
be invoked via xe for Scratch › Edit.
After the mode is invoked, the scratch loop’s start point will have focus (notice the yellow border). In the message footer, the available key bindings are listed, with the most important controls being the following:
| Key | Operation |
|---|---|
Tab |
Toggle active bound: start/end |
x |
Toggle looping: on/off |
Left |
Active bound: decrease |
Right |
Active bound: increase |
Down |
Delta: decrease |
Up |
Delta: increase |
Space |
Play/pause near active bound |
Enter · Esc |
Exit edit mode |
As noted in the table, Space will play/pause the video near the active
bound. The purpose is to allow you to adjust a boundary, then play the video
to assess whether more fine-tuning is needed.
Scratch loop bounds
In addition to scratch loop edit mode, the app supports key bindings to adjust
the loop bounds directly. The [ prefix targets the start; ] targets the
end. See the loop bounds key
bindings for a full listing.
The most commonly used bindings are these:
| Key | Operation |
|---|---|
[- |
Start: decrease |
[= |
Start: increase |
]- |
End: decrease |
]= |
End: increase |
Scratch loop sources
As noted above, the Scratch operation loads the bounds of a saved entity
into the scratch loop. If you navigate to a section and then press sx to
scratch the current section, there are several things to notice:
-
Looping. Toggled on.
-
Current panel. Indicates the name and range of the scratch loop source.
-
Scratch bounds larger than source. The scratch loop bounds are set slightly larger than the source bounds. This is done to provide a small bit of lead-in and lead-out time as you play the loop. Loop padding is done for sections and chapters, but not for videos or saved loops. You can adjust the padding via Options.
-
Yellow bound when playhead outside source. Press
Spaceto play the video and thenEnterto jump to the scratch loop start. After you do that, notice that whenever the playhead sits in the padded region beyond the source bounds, the relevant scratch loop bound is highlighted yellow. -
Yellow Current panel range when scratch and source diverge. If you modify the scratch loop bounds, notice that the time range in the Current panel is displayed in yellow font.
When the scratch loop has a source, additional operations are available:
-
Save to source. Press
xsto update the source entity’s bounds based on the current scratch loop bounds (after controlling for padding, where applicable). -
Reset to source. Press
xrto return the scratch loop bounds to match those of the source (also controlling for padding). -
Unlink source. Press
xuto remove the source linkage: after that the scratch loop will have no connection to the source and it will behave as if you had set the bounds manually.
Time and navigation
The visual timeline
The timeline sits below the video and provides a visual overview of the information attached to it. It has four horizontal zones stacked top to bottom. For both the progress bar and saved entities — sections, chapters, marks, and loops — hover to display name and time information, and click to jump to the start of an entity.
Playhead zone. Mimics the YouTube progress bar: a thick line with a dot marking the playhead. The elapsed portion is blue, the remainder gray.
Section/chapter zone. Displays sections or
chapters as shaded regions. Press at for App › Toggle timeline to change
the display.
Mark zone. Displays marks as yellow dots.
Loop zone. Displays loops as colored line segments: blue for the scratch loop (in its own lane), brown for saved loops (in two lanes).
More navigation
Basic playback and navigation is available in the app’s main controls and was covered in the quick start: play, pause, speed control, seeking, and jumping to specific times or entities. LoopLlama supports a few other navigational methods:
Jump to start. Press Enter to jump the
playhead to the “start”, which is contextual: start of scratch loop, if
looping; start of zoom, if zoomed; otherwise, start of video.
Jump to previous/next entity. Near the app’s
seek controls are buttons and a dropdown to support navigation by entity. The
dropdown (accessible via the / binding) controls the entity type. The
previous/next buttons surrounding the dropdown (or the , and . key
bindings) allow you to navigate to the start of the previous/next chapter,
section, loop, or mark.
Jump history. Navigational jumps of more than 15 seconds are stored in a jump history that you can traverse. Although the history holds up to the last 40 jumps for a video, the primary intent is to allow a user to return to their prior location after an inadvertent jump. The jump history operations and key bindings are listed on the App menu.
Super slow motion. To examine a video in super
slow motion, a useful technique is to pause the video, set the seek delta
to 0.1 seconds, and then “watch” the video (without sound) using the
Left/Right arrows.
Time input formats
LoopLlama supports various time input styles:
| Format | Example | Note |
|---|---|---|
| mm:ss | 32:45 | . |
| hh:mm:ss | 1:13:28 | . |
| Raw mm:ss | 73:44 | 1:13:44 |
| Raw seconds | 245 | 4:05 |
| Decimal seconds | 34:43.2 | 1 digit max |
| Forward slash | 7/44 | 7:44 |
Time precision
Under most circumstances, LoopLlama displays times rounded to the nearest second. If you set seek-delta to a value less than 1 second, the app will report times to 0.1 precision in the following contexts: the current time text box; modals to edit the current video, chapter, section, loop, or mark; and the Video › Info modal. Similarly, if you set the scratch loop delta to less than 1 second, the loop’s start/end text boxes will display with 0.1 precision.
Data management
LoopLlama provides several ways to share your LoopLlama data with others, back up your data to your computer, sync your data across multiple browsers and devices, or perform bulk deletions.
Share video. Use dv for Data › Share video
to copy a LoopLlama sharing URL to your clipboard. Anyone with the URL can
load a copy of your data for that video into their LoopLlama. If the URL
recipient already has the same video, the app will prompt the user with a
skip-replace choice. If the recipient selects replace, the local video
information is stashed and then the shared video information is loaded into
the library. Later, the recipient can return to the prior video information
via Unstash.
Share scratch loop. Use dx for Data › Share
scratch loop, which is like Share video, but the data covers only the
scratch loop bounds.
Export. Use de for Data › Export to save
your LoopLlama data as a JSON file. If you understand how to use the app, the
data in the file will make sense.
Import. Use di for Data › Import, which
performs that process in reverse, loading the data from an exported JSON file
into LoopLlama — for example, on a different browser or computer (see data
review). The export-import operations can also be used to
create a snapshot of your library data before making experimental edits that
you might want to reverse.
Data review. Before applying Import, Save to cloud, and Read from cloud, LoopLlama opens a review dialog with a full inventory of your videos. Each video is classified into one of five categories based on whether it exists in the source, the destination, or both — and if both, which copy carries the more recent last-modified timestamp. The categories are: source only, source newer, destination only, destination newer, and same last-modified. Each category has a toggle controlling whether the operation acts on those videos, with defaults biased toward keeping newer data over older. You can review, adjust any toggle, and apply the operation or cancel. Any time the operation replaces a video, LoopLlama stashes a copy of the prior version for recovery (see Unstash).
Inspect. Use dI for Data › Inspect,
which displays your LoopLlama data directly in the browser.
Bulk deletion. Use d⌫
for Data › Delete to delete data in bulk — either entire videos or the
entities within a single video. Deleted videos can be restored via
Unstash.
Cloud storage and sign-in
Sign-in is optional. LoopLlama does not require signing in, but doing so with Google or GitHub (via the Account menu) lets you back up your LoopLlama data to the cloud — providing a more convenient insurance mechanism against lost data (for example, caused by clearing your browser cache) and a simpler way to coordinate LoopLlama usage across multiple browsers or devices.
Cloud as hard drive. LoopLlama’s cloud storage is a backup-restore facility, not a true multi-device sync. The correct mental model for this feature is cloud as hard drive: the browser’s localStorage is your working copy; the cloud is a saved copy. Multi-device users can use LoopLlama successfully if they organize their saves and reads to align with their device switches.
Save to cloud. Use ds for Data › Save to
cloud, which writes library data to the cloud (see data
review).
Read from cloud. Use dr for Data › Read
from cloud, which writes cloud data to your library (see data
review).
Compare. Use dc for Data › Compare, which
opens an informational review showing an inventory of your videos across the
same five categories as the data review — without any toggles
or action.
Remove cloud data. See the Account menu to sign out and remove all of your cloud data.
App menu
The App menu contains a variety of operations and settings. Jump history has already been covered. The others are the following:
Undo. Use au for App › Undo to reverse a
prior edit to the current video. LoopLlama stores data snapshots for the 20
most recent edits. Snapshotting covers explicit changes to the current video’s
direct attributes, as well as those of its chapters, sections, loops, and
marks. It does not cover routine navigation or adjustments to playback and
looping controls (current location and speed, jump history, navigation
settings, scratch loop bounds), even though those settings are remembered per
video. Switching to a different video clears the edit history.
Redo. Use ar for App › Redo to apply an
edit that was undone.
Clear history. Use a⌫ for App › Clear
history to discard the undo and redo stacks entirely. This operation is
not undoable.
Recall message. Use am for App › Recall
message to recall the most recent message emitted in the message footer.
Copy time. Use ac for App › Copy time to
copy the current playhead time to the clipboard.
Toggle timeline. Use at for App › Toggle
timeline to change whether the timeline displays sections or chapters.
Zoom off. Use az for App › Zoom off to
turn off any type of timeline zoom (video, chapter, section, saved loop, or
scratch loop).
Options. Use ao for
App › Options to customize various settings. Two of the settings are
per-video defaults: applied when you first load a new video, then remembered
per video:
-
Seek delta default: the number of seconds used when seeking backward/forward.
-
Scratch loop delta default: the number of seconds used when decreasing/increasing the bounds of the scratch loop.
The other options are global:
-
Speed delta default: the number of percentage points applied when decreasing/increasing playback speed.
-
Seek delta choices: the values in the seek delta dropdown.
-
Scratch loop delta choices: the values in the scratch loop delta dropdown.
-
Scratch loop pad: the number of extra seconds added before and after a section or chapter when you load it into the scratch loop.
Miscellaneous
Privacy policy
Personal project. LoopLlama is a personal project managed and designed by me, Monty Hindman. I wrote the v1 code; v2 code was written entirely by Claude Code. Although simply a personal project, it is nonetheless serious: a great deal of care was put into planning its features, designing its user interface, and checking that the app functions correctly.
Hosting. The project is hosted by GitHub, as part of its GitHub Pages feature.
YouTube handles the videos. YouTube provides and streams all video content via its standard embed API. LoopLlama simply uses that API.
Browser storage by default. Your LoopLlama data is stored only in your web browser, in localStorage. The app does not use cookies.
Transparent. The data that LoopLlama stores can
be viewed directly via de for Data › Export. The resulting JSON file
provides an accurate representation of your LoopLlama data.
Cloud backup is optional. If you sign in via Google or GitHub (see the Account menu), LoopLlama backs up your data in the cloud, using Supabase, which offers a free database service for small projects like LoopLlama.
Authentication via known, reliable third parties. LoopLlama does not manage user authentication or know anything about your credentials. Those details are handled by the authentication provider you choose — Google or GitHub.
LoopLlama does not store your email address. None of the LoopLlama database tables contain your email address. The table holding a backup copy of your LoopLlama data does have an ID that can be linked to a Supabase table holding your email address (Supabase needs to store that email to ensure that only the properly authenticated user can access your data). But the LoopLlama project will never issue queries linking your email address and your cloud backup, other than to investigate problems or requests initiated by you.
Cloud data is not shared. The copy of your LoopLlama data stored in the cloud requires valid authentication to access. That means other internet users cannot access it, unless you share your credentials with them.
Cloud data can be accessed by infrastructure staff. The LoopLlama app, and developers on the LoopLlama project, can access your data. But the project commits to accessing this information only for the purpose of allowing the app to function or to investigate specific problems or requests submitted by you to the LoopLlama team. Similarly, some Supabase staff can access the data in the LoopLlama database, but their access is governed in similar ways by Supabase policies.
User-driven access to your cloud data. The LoopLlama app interacts with your cloud data only in response to your explicit requests to save your browser data to the cloud or to read data from the cloud into your browser.
Cloud data can be removed. You can remove your cloud data at any time (see the Account menu).
No user-data tracking. LoopLlama does not use cookies and does not sell, share, or transfer your data to any third parties — other than backing up your data in Supabase, as noted above. The application does track some events for the purpose of collecting aggregate metrics for the project, specifically (1) when a user starts a new LoopLlama session and (2) when a user loads or opens a YouTube video. In that data, the user is represented by a client ID, which is simply a random ID stored in your browser that helps us count unique visitors. That ID is not linked to your identity. Further, in the data that holds the YouTube ID for the video, the app purposely omits the client ID.
Shared data is publicly available, but opaque. If you ask LoopLlama to create a URL to share either a video or a scratch loop, the shared data can be accessed by anyone with the correct URL. That URL includes a random ID generated by the app, so it is not something anyone can guess or tie to your identity.
LoopLlama is free. We do not charge to use the app and do not rely on advertising. The project has no commercial relationships of any kind. Cloud backup is provided via a free tier from Supabase. If the volume of cloud usage becomes prohibitively large — very unlikely — the app might need to charge for cloud backup in the future, but the project has every intention of avoiding that scenario.
Terms of service
LoopLlama is provided as-is, free of charge, with no warranty of any kind. By using LoopLlama, you agree to these terms: (1) the author makes no guarantees about uptime, data retention, or continued availability; (2) you are responsible for maintaining your own backups of any data you care about; and (3) misuse of the service — such as attempts to access other users’ data — is prohibited.
Contact
If you have questions, comments, problems to report, or features to request, you can file an issue via the project’s GitHub codebase. You can also contact Monty Hindman directly, as detailed here.
The LoopLlama banner
The colored banner at the top of the page draws from the visual traditions of movements that fought against fascism and authoritarianism.
Charcoal black. Anarchism and anarcho-syndicalism, forms of anti-authoritarianism older than fascism itself.
Crimson. Organized labor and the socialist left.
Deep purple. The Second Spanish Republic, whose defense drew volunteers from dozens of countries in one of the broadest anti-fascist coalitions before World War II.
Chalk white. Peace and nonviolent resistance.
Old gold. The German democratic tradition — a color the Nazis rejected and the Federal Republic later reclaimed.
Forest green. Pan-African resistance and the struggle against colonial and racial authoritarianism.
Cobalt blue. The liberal democratic movements from the Enlightenment through the American and French revolutions.
In the past quarter century, the long trend toward democratization has slowed or reversed, most notably in the United States — not only my own country but also the nation that most symbolized democratic governance, due to its pioneering democratic revolution and its economic, military, and cultural prominence since World War I. Authoritarian politics is not inherently a phenomenon of the right, but recent anti-democratic movements have come predominantly from the populist right. The LoopLlama banner is intended as a symbolic gesture of resistance — to authoritarianism generally, and to its modern rightwing variants specifically. So should you be.
-
The YouTube frame’s memory of your caption preference lives in third-party cookies/storage, which many browsers block or clear by default. Allowing that storage for the LoopLlama page lets YouTube remember the preference across sessions. In the Brave browser, for example, click the Shields icon in the address bar, open Advanced Options, and change the cookie setting from “Block third-party cookies” to “Allow all cookies.” In other browsers, look for a comparable per-site setting for third-party cookies or site data. ↩