ScreenshotNeo

BlogHow-to

Webpage to Video Converter: Create an MP4 from Any URL

Turn a public webpage into an MP4 by recording its rendered layout and scroll. Choose a guided converter, Playwright, or OBS based on the control you need.

By the ScreenshotNeo team29 September 202612 min read

Webpage to Video Converter: Create an MP4 from Any URL

Yes. To create an MP4 from a webpage URL, load the page in a browser and record its rendered appearance as it scrolls. The result is a new video of the page experience; it does not automatically download a video embedded in the page. For a quick recording, use a webpage-to-MP4 converter. For repeatable captures or browser-session control, use Playwright. For a manually composed recording, load the page in OBS as a Browser Source.

“Any URL” has limits: a page may be private, protected, unsafe, unresolved, or block automated browsing. You also need permission to record and reuse the page. Public accessibility alone does not grant redistribution rights. [LinkToVideo’s converter documentation]

1. Decide what “URL to video” means

There are three different tasks that are often described with the same phrase:

  • Record a rendered webpage: Capture the visible layout, text, images, and scrolling sequence as a new video. This guide focuses on that.
  • Download an embedded video: Obtain a media file hosted or embedded by a page. A webpage recorder is not necessarily able to do this, and the researched converter explicitly does not extract embedded videos.
  • Generate a scripted video from page facts: Extract approved information and make a new, narrated or designed video. This is a different workflow again. [LinkToVideo’s tool overview]

Choose a webpage recording when you need to show how a page looks or how a visitor moves through it. If the page contains a video player and you want the original media file, use a method that is specifically authorized and supports that platform. Do not assume a recording tool will preserve the original video stream or audio.

2. Fastest method: use a guided webpage converter

A guided converter handles browser rendering and video encoding for you. The documented LinkToVideo workflow accepts a public HTTP or HTTPS webpage, lets you choose a scene and scroll behavior, then creates an MP4 after sign-in and human verification. The page lists desktop, mobile, social portrait, and square scenes, with slow, standard, and fast scrolling. Its advanced settings include viewport, holds, loading wait, scroll behavior, and long-page handling. [Converter workflow and settings]

A webpage recording captures the rendered page and scroll as a new video file.
A webpage recording captures the rendered page and scroll as a new video file.
  1. Open the converter and enter the complete public page URL, including https://.
  2. Select a scene that matches the destination: desktop for a presentation or walkthrough, mobile for a phone layout, portrait for a vertical social post, or square for a square placement.
  3. Choose a scroll speed. Slow is easier to follow and read; faster pacing shortens the result but can make text difficult to inspect.
  4. Set the loading wait and any holds around important content. On pages with lazy-loaded images, allow enough time for assets to appear before the recording reaches them.
  5. Review the long-page behavior and viewport settings. A long page may need more than one segment or an intentional stopping point.
  6. Complete the service’s sign-in and human-verification steps, create the recording, and download the MP4.

The service documents MP4/H.264 at 30 frames per second, with no audio track, and a 720p default. Its FAQ says 1080p may be available to signed-in users when available. It also states a 60-second maximum for signed-in recordings and seven-day retention unless a recording is deleted earlier. These are settings and limits of that service; check its current page before planning around them. [Output, limits, and FAQ]

When a guided converter is a good fit

  • You want a downloadable MP4 without setting up a browser automation project.
  • The page is publicly reachable and does not require your private session.
  • A short, silent visual walkthrough is sufficient.
  • The available scene, duration, and quality settings fit your destination.

It may not fit pages that require authentication, contain region-specific content, depend on interactive steps, or block automated access. Cookie banners, third-party widgets, animation timing, host restrictions, URL validation, and very long pages can also affect the capture. Those cautions describe the researched service and common browser-rendering dependencies, not a guarantee that another tool behaves the same way. [Service limitations]

3. DIY method: record a page with Playwright

Playwright is useful when you need to reproduce a browser session, set the viewport, automate navigation, or keep capture steps in code. Its documented video recording workflow produces WebM video. Playwright Test also supports video recording through test options, with files saved when the browser context closes. If your deliverable must be MP4, plan for a separate conversion step after recording. See the Playwright video recording documentation and Playwright Test options.

The following Node.js example records a public page while scrolling it. It records a browser context to a directory, closes the context so the file is finalized, then leaves the resulting WebM for conversion. Install Playwright and its Chromium browser first:

npm init -y
npm install playwright
npx playwright install chromium
// record-page.mjs
import { chromium } from 'playwright';

const target = process.argv[2] ?? 'https://example.com';
const browser = await chromium.launch({ headless: true });
const context = await browser.newContext({
  viewport: { width: 1280, height: 720 },
  recordVideo: { dir: 'recordings', size: { width: 1280, height: 720 } },
});
const page = await context.newPage();

try {
  await page.goto(target, { waitUntil: 'networkidle', timeout: 60_000 });
  await page.waitForTimeout(1_000);
  const pageHeight = await page.evaluate(() => document.documentElement.scrollHeight);
  const viewportHeight = 720;
  for (let y = 0; y < pageHeight; y += Math.floor(viewportHeight * 0.75)) {
    await page.evaluate((top) => window.scrollTo(0, top), y);
    await page.waitForTimeout(700);
  }
  await page.waitForTimeout(1_000);
} finally {
  // Closing the context finalizes the video file.
  await context.close();
  await browser.close();
}

Run it with a URL:

node record-page.mjs https://example.com

Playwright writes a WebM file into recordings. The filename is assigned by Playwright. Keep the browser context open for the entire capture: closing it is what finalizes the recording. Do not expect a failed navigation to produce a complete, valid video.

Convert the WebM recording to MP4 with FFmpeg

FFmpeg converts media files; it does not render a webpage by itself. Once Playwright has created a WebM recording, a typical H.264 MP4 conversion is:

ffmpeg -i recordings/VIDEO.webm -c:v libx264 -pix_fmt yuv420p -movflags +faststart page.mp4

Replace recordings/VIDEO.webm with the actual file name. If the input has no audio, the output has no audio either. FFmpeg supports many containers and codec options; consult its official documentation for the available input, encoding, and output settings. A conversion can take longer when the recording is large or the chosen codec settings demand more CPU.

Capture a test video with Playwright Test

For browser tests, enable recording in the test configuration and close the context at the end of the test. This example uses the documented option shape; consult the current Playwright documentation for version-specific behavior:

// playwright.config.js
import { defineConfig } from '@playwright/test';

export default defineConfig({
  use: {
    viewport: { width: 1280, height: 720 },
    video: 'on',
  },
});
// tests/page-recording.spec.js
import { test, expect } from '@playwright/test';

test('record a page walkthrough', async ({ page }) => {
  await page.goto('https://example.com');
  await expect(page).toHaveTitle(/Example Domain/);
  await page.screenshot({ path: 'page-check.png' });
});

Playwright Test manages browser contexts and their video artifacts according to the test configuration and runner lifecycle. Use the runner’s output location and retention options when organizing artifacts in CI. This is useful for test evidence, but a generated test video may need to be located and converted separately before sharing as MP4. [Playwright videos]

4. Manual method: OBS Browser Source

OBS is appropriate if you want to place the webpage inside a scene with other visual sources, control the recording manually, or narrate it. Add a Browser Source, enter the page URL, and set its width and height. The Browser Source documentation describes URL input, viewport dimensions, and a configurable frame rate. Then arrange the source in the scene, start recording, scroll the page in the source or interact with it as needed, and stop recording when done. [OBS Browser Source documentation]

  1. Create a scene and add a Browser Source.
  2. Set the page URL and source dimensions to match your intended video frame.
  3. Choose a frame rate and configure OBS recording output to MP4 using the available recording settings.
  4. Wait for the page to load, then record the desired scroll or interaction sequence.
  5. Review the resulting video for clipped content, overlays, and text that moves too quickly.

OBS gives you hands-on control, but it is a recording setup rather than a one-click webpage converter. Test the scene framing and output configuration before recording a long walkthrough.

5. Choose the right workflow

Method What it produces Useful when Key limitation
Guided converter Rendered public page as an MP4 You want a short, direct workflow with scene and scroll controls Eligibility, duration, output, and retention depend on the service
Playwright Browser-session recording, documented as WebM You need scripted navigation, repeatability, or test evidence MP4 usually requires a separate media conversion step
OBS Browser Source A page loaded into a manually composed recording scene You want manual timing, scene composition, or narration Requires recording and framing setup
FFmpeg A converted or transcoded media file You already have a recording and need a different output format It is not a webpage renderer

The comparison is about distinct jobs: Playwright records browser sessions, OBS loads a page as a source, and FFmpeg processes media that already exists. Their official documentation describes those respective roles. [Playwright] [OBS] [FFmpeg]

6. Or skip the browser setup

If the useful artifact is a still screenshot rather than a moving scroll recording, ScreenshotNeo captures a webpage image or PDF with one GET request. It is a website screenshot API and MCP server, not an MP4 recorder. Use it when a clean visual record is enough, or when you need screenshots alongside a video workflow. The API documentation lists its request options.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

ScreenshotNeo removes cookie and consent banners, newsletter popups, and chat widgets before capture; each cleanup step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server gives AI agents tools for screenshots, page info, and PDF capture. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Every feature is on every plan.

Create a free ScreenshotNeo account for 1,000 screenshots a month with no card.

7. Settings that affect the result

Viewport and scene

Choose the frame before recording. A desktop viewport captures wider layouts; a mobile viewport can reveal responsive navigation and stacked content. Portrait and square scenes are useful only when the page remains readable at those proportions. If the page is designed for desktop, squeezing it into a narrow frame can make text too small.

Viewport, aspect ratio, and scroll pacing determine how readable the recording feels.
Viewport, aspect ratio, and scroll pacing determine how readable the recording feels.

Waits, holds, and scrolling

A page can finish its initial HTML load before images, fonts, animations, or third-party widgets are ready. Use a loading wait, then hold on the opening frame long enough for the viewer to orient themselves. Scroll in increments smaller than the viewport height to retain context. Longer holds improve readability but increase video duration. Pages that lazy-load content may need scrolling to trigger content before the final recording pass.

Long pages and dynamic content

Decide what the video needs to prove. A complete page tour can become too fast or too long; a focused segment around the relevant section is often easier to review. Sticky headers, animated panels, rotating promotions, and personalized content can change while the capture runs. If the result must be reproducible, use a controlled test page or a stable URL and note the capture date.

8. Troubleshooting

Symptom Likely cause What to try
Converter rejects the URL The URL is malformed, unsupported, private, or outside the service’s permitted public-page workflow Check the scheme and spelling, open the URL without a logged-in session, and review the converter’s eligibility rules.
Blank or incomplete recording The page failed to load, automation was blocked, or the recording started before visible content was ready Open the page normally, increase the loading wait, inspect the browser error, and try a permitted page that does not require authentication.
Images are missing Images load lazily or depend on delayed third-party requests Wait after navigation and scroll through the page to trigger lazy loading before recording the final pass.
Text is too small or moves too quickly The viewport or scene is too narrow, or scroll speed is too fast Use a wider viewport, select a more suitable scene, slow the scroll, and hold on important sections.
Playwright video is absent or incomplete The browser context was not closed, the run failed early, or the artifact directory was not collected Close the context in a finally block, inspect the runner output, and retain the recordings directory.
FFmpeg cannot open the input The file path is wrong, the recording was not finalized, or the file is unreadable Use the actual WebM filename, confirm the Playwright context closed, and inspect the input with FFmpeg before converting.
MP4 plays without sound The source recording has no audio track That is expected for a silent webpage recording. If narration is required, record it in a workflow that captures audio.
Page differs by region or session The site personalizes content, uses geolocation, or requires cookies/authentication Use an authorized workflow with the needed session controls, or capture a public version and disclose the difference.

9. Performance, reliability, cost, and rights

Recording time depends on how long the page takes to load, the chosen scroll pace, holds, page length, and encoding. Longer recordings create larger files and take more time to encode or upload. A 30 fps output, as documented by the researched service, means the capture is intended as video playback; it does not make every page animation smooth or guarantee a particular quality on every device.

For reliability, keep the URL stable, use a viewport that matches the intended display, allow assets to load, and inspect the entire output before sharing. Capture failures can result from host restrictions, authentication, bot checks, unsafe URL filters, slow third-party services, or page changes. A public URL is not necessarily automatable.

Costs vary by workflow. A hosted converter may require an account or credits; confirm current pricing and limits on its service page before relying on a specific allowance. Playwright and FFmpeg are software workflows, but they require your own compute, setup, storage, and maintenance. OBS requires a recording environment and time to compose and review the capture. None of these effort costs should be confused with a guarantee that every page will record successfully.

Record only pages you own or have permission to capture and reuse. Respect site terms, privacy obligations, copyrighted material, and personal information visible in the page. A page being reachable without a password does not by itself authorize redistribution. [Converter rights guidance]

10. FAQ

Can I convert any webpage URL to MP4?

No tool can promise that every URL will work. Public, permitted pages are the usual target; private, protected, unsafe, unresolved, or automation-blocking pages may fail.

Will the MP4 include the page’s embedded video and audio?

Not necessarily. A webpage recording captures the rendered experience. The researched converter says it does not download embedded video, and its documented output has no audio track.

Can I use an MP4 from Playwright?

Playwright’s documented browser video recording is WebM. Convert the finalized recording with a media tool such as FFmpeg when you need an MP4 deliverable.

Is a screenshot API a video converter?

No. ScreenshotNeo returns screenshots or PDFs. Use it for still captures; use a browser recorder or webpage converter when you need motion and scrolling in a video.

How do I make a page video easier to read?

Use a frame suited to the page, scroll slowly, pause at key sections, and keep the capture focused. Review the MP4 at its intended playback size before sharing.