Free · YouTube & Facebook · Rotate 90°

Video player

Paste a YouTube or Facebook link, or open a video file from your device, and watch it your way — turn the picture in 90° steps so you can lie on your side, change the speed, control the volume, go fullscreen, and get subtitles that actually show up on iPhone. A local file gets real seeking and needs no platform's permission to play.

or

Paste a link, or drop a video file anywhere on this page.

YouTube watch, Shorts, live and youtu.be links all work, as do Facebook watch, video and reel links. A file from your device — MP4, WebM, MOV — gets the full treatment: real seeking, speed, volume, rotation and subtitles, with nothing uploaded and no platform deciding whether it may be embedded.

Shortcuts — ←/→ skip 10s (hold Shift for 30s), ,/. skip 1s, J/L skip 10s, 0–9 jump to 0–90%, Home/End start/end, Space or K play/pause, </> speed, M mute, ↑/↓ volume, F fullscreen, R rotate right, Shift+R rotate left, C pin controls, [/] nudge subtitles.
Click the picture to play or pause, double-click it for fullscreen. On a phone, tap once for the controls and double-tap the left or right edge to skip 10 seconds. The pointer and the controls fade out while the video plays — move the mouse, tap, or press a key to bring them back. Seeking is the exception: the arrows, J/L, ,/., the number keys and Home/End leave the bar where it is, because the skip badge on the picture already tells you what happened and scanning through a video should not keep throwing the controls back over it.

Subtitles

For YouTube, use the Captions menu in the control bar above — those are YouTube's own tracks and they keep working on iPhone here. Load a .srt or .vtt file instead when a video has no captions of its own, or for Facebook. Loaded lines are drawn by this page, so once the picture is rotated you can choose where they sit: in a band under the video, over its bottom edge, or turned with the picture for a display you have physically rotated. YouTube’s own caption track is drawn inside YouTube’s player, so it always turns with the picture — load a subtitle file if you want to place it.

Drop a .srt or .vtt file here
or click to browse — nothing is uploaded

— or paste subtitle text —

🔒 The video streams straight from YouTube or Facebook to your browser, exactly as on their own site. Subtitle files you load are read on your device and never uploaded.

Handy for

🛋️

Watching lying down

Turn the picture 90° so a laptop propped beside the sofa or bed reads the right way up when your head is on its side.

📱

Captions on iPhone

Playback is forced to stay inline and fullscreen is handled here, so YouTube's own captions keep rendering on iOS Safari instead of vanishing.

🎞️

Footage shot sideways

Someone filmed a whole clip with the phone the wrong way round. Rotate it back instead of tilting your monitor.

Why captions break on an iPhone, and what actually fixes it

YouTube draws its captions itself, as part of its own player, inside its own frame. On a desktop that simply works. On an iPhone it works too — right up until the moment iOS decides to take the video out of the page and play it in the system's own fullscreen player. At that point the operating system is drawing the video, not the web page, and the caption layer that belonged to the page is simply gone. That is the entire bug, and it is why captions on the same video behave differently on a phone than on a laptop.

Two things stop that handover. The first is asking for inline playback explicitly, so iOS keeps the video in the frame instead of promoting it to the system player. The second is not offering the player's own fullscreen button as the way to go fullscreen, because pressing it on an iPhone is precisely the handover that loses the captions. Fullscreen here is applied to the player's whole shell — picture, controls and all — which the page keeps drawing itself.

With both in place, YouTube's real caption tracks keep rendering on an iPhone, and the caption menu in the control bar lists whatever languages the video actually offers. The menu stays empty until playback begins, which is not an oversight: the player exposes no track list at all until media has started loading, so there is genuinely nothing to show before then.

The subtitle-file loader is the separate, guaranteed path. It parses a file you supply and draws the lines in this page's own elements, so it does not depend on any platform behaviour — and it is the only option for a video that has no captions of its own. It cannot be filled from YouTube's tracks: caption text is not exposed by the player's interface, and the endpoint that serves it is not reachable from a browser.

What rotation does to the size of the picture

Turning a video 90° inside a screen of the same shape always costs you size, and it is worth knowing why before assuming something is broken. A widescreen video is roughly 16 units across for every 9 tall. Stand it on its end and it becomes 9 across for every 16 tall, while the screen it has to fit inside is still the wide way round. The height of the screen now limits the long side of the picture, so the video ends up occupying a tall strip through the middle with empty space either side.

That is geometry rather than a limitation of the player: no arrangement makes a rotated widescreen picture fill a widescreen screen. The player already sizes the turned frame as large as it can possibly go, which is why fullscreen is worth using once rotated — a bigger screen means a bigger strip.

Fullscreen here is applied to the whole player rather than to the video frame, which matters more than it sounds. Handing the screen directly to the platform's frame would take the rotation and the subtitle layer with it, since both belong to this page and not to theirs. On iPhone, where a page cannot request true fullscreen for anything other than a video element, the player falls back to filling the screen with ordinary layout instead — visually the same, and it keeps everything this page draws.

Getting subtitle timing to line up

A subtitle file is timed against one specific copy of a video. Re-uploads, regional cuts and versions with different intros all shift the timing, so a file that is perfect for one copy can run consistently early or late on another. This is the usual reason subtitles that "don't work" are in fact working and simply displaced.

The fix is a single offset applied to every line at once. Find a moment where someone clearly says something, note whether the text arrives before or after, and nudge in half-second steps until the two meet. Drift that grows over the length of a video is a different problem — that means the two copies run at different frame rates, and no fixed offset will hold across the whole thing.

Both common formats are accepted. SubRip files, ending .srt, number each line and separate the timestamps with commas; WebVTT files, ending .vtt, start with a WEBVTT header and use dots. The difference is cosmetic and the parser here takes either without being told which is which. If you need to convert or clean up subtitle text first, the subtitle editor handles that, and OCR can pull text out of hard-burned captions.

Video player FAQ

Can I play a video from my own device?

Yes — Open a video file next to the link box, or just drop the file anywhere on this page. MP4 (H.264), WebM and most MOVs play. This is the path with nothing in the way: real seeking, playback speed, rotation and subtitle files all work properly, and no platform gets to decide whether the video may be embedded. The file is read in your browser and never uploaded.

The Facebook video is just a black box

That is Facebook, not this page, and it is usually one of two things. Its embed only renders posts that are public — a friends-only post, or one with embedding turned off, comes back as an empty player. And its plugin needs third-party cookies, which Chrome, Safari and Firefox now block by default; when they are blocked Facebook returns a blank page rather than an error, so there is nothing here to detect or report. Allowing third-party cookies for facebook.com fixes it, and opening the video on Facebook always works. If you have the video as a file, open the file instead — everything on this page works better that way.

Can I rotate a YouTube video 90 degrees?

Yes — the rotate buttons turn it in 90° steps either way, and the rotation is kept in fullscreen. Press R for a quick turn.

Why don't YouTube captions work on my iPhone?

Because iOS usually moves the video into the system fullscreen player, and YouTube's caption layer belongs to the web page, so it disappears with the handover. This player forces playback to stay inline and provides its own fullscreen instead, so YouTube's real captions keep working. Pick a language from the Captions menu once playback has started.

Why is the Captions menu empty?

YouTube exposes no track list until playback has actually begun, so the menu fills in a second or two after you press play. If it then says the video has no captions, that video genuinely has none — load a subtitle file instead.

Where do I get a .srt or .vtt file?

Any subtitle file works — one that came with a download, one you wrote, or one exported from another tool. You can also paste the text directly. Nothing is uploaded.

Does it work with Facebook Reels and live videos?

Yes, for any Facebook video left publicly embeddable by its owner. Private videos and ones with embedding disabled can't play on any site but Facebook.

My Reel or Short looks cropped or squashed

Vertical video needs a vertical frame. Reels and Shorts are detected automatically, but if a video still doesn't fit, set Frame to 9:16 (or whatever matches) and use the zoom slider to fine-tune. Reset puts everything back.

Why is the video smaller when rotated?

A widescreen picture stood on its end is limited by the height of your screen, so it becomes a tall strip. That's geometry, not a bug — going fullscreen gives it the most room available.

My Facebook link says "video unavailable"

Two causes. Either it's a share short-link — fb.watch/… or facebook.com/share/v/… — which Facebook's own player refuses to follow: open it on Facebook and copy the full address instead. Or the video's original post isn't public, in which case it can't be embedded anywhere by anyone.

How do I skip forward or back 10 seconds?

Press ← or → — or J and L, or the « 10 and 10 » buttons in the control bar. Hold Shift with an arrow to jump 30 seconds instead, and use , and . for one second at a time. Skips add up, so tapping → three times moves you a full 30 seconds. On a phone, double-tap the right or left edge of the picture.

Can I scrub to a specific point?

Yes — drag the seek bar in the control bar, or press a number key: 0 jumps to the start, 5 to halfway, 9 to 90% through. Home and End go to the very start and end. This works for YouTube links and for your own files; Facebook exposes no controls to the page, so its own bar inside the frame is the only way there.

Does seeking make YouTube's own bar pop up?

Not any more. YouTube's chrome is switched off, so this page's control bar is the only one on screen and seeking no longer flashes a second set of controls across the picture. If you want YouTube's own bar back — for quality, chapters or its settings menu — the YouTube controls button brings it back and keeps your place.

Can I change the playback speed?

Yes, for YouTube links and for your own files — press < to slow down and > to speed up, from 0.25× through to 2×.

Where did the controls and the mouse pointer go?

Both fade out a couple of seconds after you stop moving, so a playing video isn't sharing the screen with a control bar and a stray cursor. Move the mouse, tap, or press any key to bring them back, and press C to pin the controls open. Nothing hides while the video is paused.

My Facebook Live link says it can't be embedded

A /live address isn't a video — it's a page that shows whatever is streaming at that moment, so there's nothing to embed. Once a stream starts it gets its own link; open it on Facebook and copy that, and it'll look like facebook.com/watch/?v=123456.

Can I control the volume for Facebook videos?

Facebook videos start muted, because browsers only allow autoplay without sound. Press Unmute and the embed reloads with audio — that reload is the only way to unmute a Facebook embed, since Facebook exposes no player controls to the page. Its own volume slider inside the frame works too.

Is anything uploaded?

No. The video streams from YouTube or Facebook to your browser exactly as it would on their site, and subtitle files are read locally.

Can I move the subtitles when the video is rotated?

Yes. Turning the picture 90° used to take the subtitle layer with it, so the text ran vertically down one side of the frame — a long way from the picture and unreadable without tilting your head. Once the picture is rotated, a When rotated menu appears next to the subtitle size: Under the video puts them upright in a band directly beneath the picture (the video is fitted to the space left over, so nothing is cropped), Over the video puts them upright across its bottom edge in the usual subtitle position, and Turn with the picture keeps the old behaviour for anyone who has physically rotated their display. On a mouse-driven machine it defaults to Under the video; on touch it keeps turning with the picture. This applies to subtitle files loaded here — YouTube's own caption track is drawn inside YouTube's player, and nothing on this page can move it.

Does pressing the arrow keys pop the controls back up?

No. Seeking keys — the arrows, J/L, ,/., 0–9 and Home/End — deliberately leave the control bar alone, because the skip badge that flashes on the picture already confirms the jump. Keys whose only feedback lives in the bar itself — volume, speed, rotation, fullscreen — still bring it back.

Why do my subtitles run early or late?

The file was timed against a different copy of the video. Use the −0.5s / +0.5s buttons to shift every line at once until they match.