☰

Reddit Reels

Mobile-first full-screen reels for Reddit feeds: swipe, one stream with sound, Reddit video and RedGifs, native voting.

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

Tendrás que instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Tendrás que instalar una extensión como Tampermonkey antes de poder instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

Autor
quantavil
Instalaciones diarias
0
Instalaciones totales
39
Calificaciones
0 0 0
Versión
3.2.1
Creado
19/09/2026
Actualizado
26/10/2026
Tamaño
81.1 KB
Licencia
GPL-3.0-or-later
Funciona en

📱 Reddit Reels

GitHub Runtime: Bun Build: Vite

A mobile-first userscript (Violentmonkey / Tampermonkey; Microsoft Edge, Firefox, Vivaldi, Helium, Firefox Android, Safari/Orion) that turns any Reddit feed into a full-screen, swipeable reel: one post per screen, one stream with sound, Reddit video and RedGifs, native voting.

Tap the Reels button on a feed. The reel opens over Reddit; the phone's Back button (or ✕ / Esc) closes it and leaves you on the post you were watching.


How it works (and why)

The reel is its own full-screen view (shadow DOM, own CSS), not a restyle of Reddit's page. Restyling Reddit's markup breaks whenever the markup differs per device, which is what happened in v2. Reddit's page stays underneath, hidden, as the data source.

Piece How
Posts Read from Reddit's rendered <shreddit-post> attributes (title, author, score, media).
More posts Same HTML endpoint Reddit's feed uses (faceplate-partial[slot=load-after], e.g. /svc/shreddit/community-more-posts/…?after=). New pages are inserted into Reddit's real feed, so they are live posts. No .json API, no rate-limit traps.
Reddit video Direct packaged-media.redd.it mp4 (has audio) when Reddit provides one (re-read when the slide opens, since Reddit fills it in late); otherwise the HLS stream through the full hls.js build (Reddit keeps audio in a separate playlist, which the light build can't play). Native HLS is only a last resort: Chrome claims support but fails Reddit's streams. If a source fails, the next one is tried.
Reddit "gifs" Served as a silent mp4 (preview.redd.it/…gif?format=mp4), played directly. (Before 3.2 they went to the HLS player and failed, e.g. all of r/gifs.)
RedGifs RedGifs API → mp4 → blob. Requests go through GM_xmlhttpRequest because Reddit's CSP blocks redgifs hosts and RedGifs blocks Reddit referrers. If that fails, the slide falls back to RedGifs' own player iframe.
YouTube / Streamable Their embed player, mounted only while the slide is on screen.
Audio One shared <video> moved into the active slide. Only one stream can exist, so no audio bleed. Once your first tap has played it, mobile browsers keep allowing sound on later slides.
Voting Clicks Reddit's own vote buttons inside the post, so auth and CSRF stay Reddit's. Logged out → a "log in" toast.
Text posts Full-height story: the title is sized by length, the body keeps Reddit's formatting (paragraphs, lists, quotes, links, spoilers) through an allow-list sanitizer. Long bodies fade out; Read more (or tapping the text) opens a scrollable reader sheet. Back or Esc closes it. The body never scrolls inside the slide, so a swipe always goes to the next post.
App nags Mobile Reddit points post, user and subreddit links at applink.reddit.com, an App Link that launches the Reddit app. They are rewritten to www.reddit.com (tracking params dropped), and the header Open App button is hidden.
Comments Opens Reddit's post page (new Reddit) in a new tab, so the reel keeps its place.
Memory Only the active slide and its neighbours hold images/iframes; far slides are emptied.
Landscape On a phone held sideways, video slides hide the close button, subreddit, title, rail and seek bar (opacity only, so swiping stays smooth). A tap brings them back for 3 s; they stay while paused. Rotating keeps the same slide in view.
Swiping The slide switches only after the scroll settles, and live UI (seek bar, spinner, pulses) sits in a fixed layer above the track. Changing layout inside a scroll-snap track mid-swipe makes browsers snap back, which felt like "swipe twice".

Controls

Gesture / key Action
Swipe up / down, J K, ↓ ↑ Next / previous
Tap Play / pause (first tap after a blocked autoplay turns sound on; a ▶ shows when the browser blocked autoplay entirely)
Double tap Upvote
Tap a long text post / Read more Reader sheet (Back / Esc / ✕ closes it)
Rotate the phone (video) Immersive: only the video; tap shows the controls for 3 s, the next tap plays/pauses
Drag the bottom bar Seek
← → Gallery image, or seek ±5 s
Space Play / pause
M Mute
C Captions (Reddit videos that have them)
F / rail button Fit ↔ fill screen
Back, ✕, Esc Close

Mute is remembered. Vertical videos fill the screen by default; others are letterboxed against black.


Install

  1. Install Violentmonkey (recommended) or Tampermonkey.
  2. Open dist/reddit-reels.user.js and click Install.
  3. Open a feed on https://www.reddit.com/ and tap the orange button.

hls.js (full build) is loaded via @require from jsDelivr. @connect covers api.redgifs.com / media.redgifs.com; allow it when the manager asks.


License

GPL-3.0-or-later