Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteUse a .timer unit to schedule a .service unit, and let that service run a Playwright script that opens the site and writes a screenshot to an absolute path. The example below runs daily at 02:00, uses headless Chromium, and can catch up once after an eligible run was missed while the timer was inactive.
1. Prepare the Linux account, output directory, and Playwright browser
Run the capture as a dedicated, non-root account where possible. The account needs permission to execute Node.js and the script, launch the browser, and write to the screenshot directory. This example uses the account screenshot and stores the latest image under /var/lib/site-screenshot; create those paths and set ownership and permissions to match your system.
Install the playwright package in the project and install the browser build compatible with that package, including Linux dependencies. Playwright documents this install command for Chromium:
npx playwright install --with-deps chromium
Playwright launches browsers headlessly by default, which is usually suitable for a server without a desktop. Headed Linux operation requires a display server such as Xvfb. When upgrading Playwright, install the corresponding browser binaries again so the package and browser versions remain compatible. See the Playwright browser documentation.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
2. Write the screenshot script
Save this as /opt/site-screenshot/capture.js, after installing Playwright in that project. Replace the URL with the site you are authorized to capture.
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({
path: '/var/lib/site-screenshot/latest.png',
fullPage: true
});
} finally {
await browser.close();
}
})();
The absolute screenshot path is intentional: Playwright resolves relative screenshot paths from the process’s current working directory, which may differ from the directory used in your interactive shell. fullPage: true captures the full scrollable page; omit it for a viewport-sized screenshot. The Playwright Page API documents navigation and screenshot options.
3. Define the systemd service and timer
Service: run one capture
Create /etc/systemd/system/site-screenshot.service:
[Unit]
Description=Capture a website screenshot
[Service]
Type=oneshot
User=screenshot
WorkingDirectory=/opt/site-screenshot
ExecStart=/usr/bin/node /opt/site-screenshot/capture.js
Confirm the Node.js executable path on your host with command -v node; update ExecStart if it is not /usr/bin/node. The WorkingDirectory makes the script’s runtime directory explicit, while the screenshot itself still uses an absolute path.
Free tools Windows power users keep installed
One-click scans. No signup required.
Timer: run daily and catch up after eligible downtime
Create /etc/systemd/system/site-screenshot.timer:
[Unit]
Description=Schedule website screenshots
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
OnCalendar=*-*-* 02:00:00 is a wall-clock schedule for 02:00 every day in the host’s local time zone. Timer and service files with the same base name are linked by default, so this timer activates site-screenshot.service.
Persistent=true records the last time the service was triggered. If an eligible calendar event passes while the timer is inactive, activating it later can trigger one catch-up run; it does not replay every missed daily event. If missed captures should be skipped instead, omit this setting. For timer semantics and options, see systemd.timer(5).
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
4. Validate, enable, and inspect the schedule
-
Check that systemd accepts the calendar expression:
systemd-analyze calendar '*-*-* 02:00:00'. Review the next scheduled occurrence and confirm the host’s time zone is the one you intend. -
Reload unit files after creating or editing them:
sudo systemctl daemon-reload.Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. -
Enable the timer at boot and start it now:
sudo systemctl enable --now site-screenshot.timer. -
Check the next and previous scheduled times:
systemctl list-timers site-screenshot.timer. -
Run a capture immediately to validate the service without waiting for 02:00:
sudo systemctl start site-screenshot.service. Then inspect its result withsystemctl status site-screenshot.serviceandjournalctl -u site-screenshot.service, and confirm that/var/lib/site-screenshot/latest.pngexists and is readable.
Use the installed system’s systemd-analyze calendar and man pages to verify behavior on your system; unit paths, systemd version, and distribution packaging can vary.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
5. Choose scheduling and capture behavior deliberately
Wall-clock calendar versus elapsed intervals
Use OnCalendar= for times tied to the clock, such as each day at 02:00. Systemd also supports monotonic timer directives for delays or intervals relative to activation or system events; those are not interchangeable with a fixed local clock time. Check the timer manual for the directive that matches your intended schedule.
Catch up versus skip
Set Persistent=true when a missed calendar activation during timer inactivity should cause a later catch-up activation. It causes at most one catch-up activation, not a backlog of all missed occurrences. Leave it out when downtime should simply skip the scheduled capture.
Exact timing and clock setup
A timer expiration is not a guarantee that the service starts at the exact configured second. AccuracySec= defines a timing window in which systemd may schedule the activation. Calendar timers are ordered after time-setting and time-synchronization targets in current upstream documentation, but actual behavior depends on the installed systemd version and host clock configuration. See the systemd timer documentation.
Viewport versus full-page image
A regular screenshot captures the current viewport. Use Playwright’s fullPage: true when you need the full scrollable page in one image. Full-page output can be much taller than the viewport, and page behavior such as lazy-loaded content may affect what is present when capture occurs; verify the output for your target site.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →6. Troubleshoot missed runs and bad captures
-
The timer does not appear in the schedule: check for typos in both unit filenames, run
sudo systemctl daemon-reload, and inspectsystemctl status site-screenshot.timer. Validate theOnCalendarexpression withsystemd-analyze calendar. -
The timer is active but the service failed: inspect
systemctl status site-screenshot.serviceandjournalctl -u site-screenshot.service. A oneshot service may be inactive after completing successfully; use its result and logs to distinguish success from failure.Rank #4
SaleUGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
-
Node.js or the script cannot be found: verify
ExecStartpoints to the actual Node.js binary and script, and that thescreenshotaccount can read and execute the files. -
The script works interactively but not under systemd: system services have a different working directory and environment from an interactive shell. Keep executable and output paths absolute, set
WorkingDirectory=, and ensure the service account has the needed permissions and project dependencies.Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. -
The browser fails to launch: install the Playwright browser matching the installed package and the required Linux dependencies. Check the service log for launch errors; on a headless server, use the default headless launch rather than expecting a desktop display.
-
The image is missing or stale: confirm the target URL is reachable from the server, that navigation completes, and that the service account can write to the output directory. Review the latest service log and file timestamp.
-
Captures differ between runs: rendering can change with host OS, browser version, settings, hardware, power source, and headless mode. Keep the server image, browser version, fonts, viewport, and capture configuration consistent when comparing screenshots over time. See Playwright’s screenshot comparison guidance.
Or skip the browser setup
ScreenshotNeo provides a screenshot API and MCP server for developers. Its API can return an image or PDF from a GET request; the following cURL example saves a WebP capture. See the ScreenshotNeo API documentation for request options.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
curl -G "https://api.screenshotneo.com/v1/shot"
-d access_key=YOUR_API_KEY
--data-urlencode url=https://example.com
-o shot.webp
-
Cookie and consent banners, newsletter popups, and chat widgets can be removed before capture; each cleanup step can be turned off.
-
Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed; response headers identify the page verdict and whether the request was billed.
-
An MCP server provides
take_screenshot,get_page_info, andcapture_pdftools for Claude, Cursor, and other MCP clients. -
The Free plan includes 1,000 screenshots per month with no card required; paid plans start at $5 for 3,000 screenshots. Every feature is available on every plan.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Learn about ScreenshotNeo, or sign up for 1,000 free screenshots a month with no card.
Frequently Asked Questions
Does the example run at 02:00 UTC?
No. The calendar example uses the host’s local time zone. Confirm the server’s time-zone configuration and the next occurrence shown by systemd-analyze calendar.
Can a timer replay every screenshot missed during a week of downtime?
No. With Persistent=true, systemd can trigger one catch-up activation for an eligible missed calendar event; it does not replay each missed occurrence.
Do scheduled systemd services inherit my shell’s environment?
Do not assume they do. Specify paths and the working directory in the unit, and make sure the service account has the permissions and dependencies the script requires.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

