Skip to content(if available)orjump to list(if available)

Self-hosted, simple web browser service – send URL, get screenshots

xnx

For anyone who might not be aware, Chrome also has the ability to save screenshots from the command line using: chrome --headless --screenshot="path/to/save/screenshot.png" --disable-gpu --window-size=1280,720 "https://www.example.com"

cmgriffing

Quick note: when trying to do full page screenshots, Chrome does a screenshot of the current view, then scrolls and does another screenshot. This can cause some interesting artifacts when rendering pages with scroll behaviors.

Firefox does a proper full page screenshot and even allows you to set a higher DPS value. I use this a lot when making video content.

Check out some of the args in FF using: `:screenshot --help`

input_sh

Firefox equivalent:

    firefox -screenshot file.png https://example.com --window-size=1280,720
A bit annoyingly, it won't work if you have Firefox already open.

azhenley

Very nice, I didn't know this. I used pyppeteer and selenium for this previously which seemed excessive.

martinbaun

Oh man, I needed this so many times didn't even think of doing it like this. I tried using Selenium and all different external services. Thank you!

Works in chromium as well.

Onavo

What features won't work without GPU?

xnx

LMGTFY (Let Me Gemini That For You) :-) https://gemini.google.com/share/e9428bb57a22

I've used that when running unattended batches, but worth trying with and without disabling to see what is best for your use case.

dingnuts

oh good an AI summary with none of the facts checked, literally more useless than the old lmgtfy and somehow more rude

"here's some output that looks relevant to your question but I couldn't even be arsed to look any of it up, or copy paste it, or confirm its validity"

jot

If you’re worried about the security risks, edge cases, maintenance pain and scaling challenges of self hosting there are various solid hosted alternatives:

- https://browserless.io - low level browser control

- https://scrapingbee.com - scraping specialists

- https://urlbox.com - screenshot specialists*

They’re all profitable and have been around for years so you can depend on the businesses and the tech.

* Disclosure: I work on this one and was a customer before I joined the team.

edm0nd

https://www.scraperapi.com/ is good too. Been using them to scrape via their API on websites that have a lot of captchas or anti scraping tech like DataDome.

morbusfonticuli

Similar project: gowitness [1].

A really cool tool i recently discovered. Next to scraping and performing screenshots of websites and saving it in multiple formats (including sqlite3), it can grab and save the headers, console logs & cookies and has a super cool web GUI to access all data and compare e.g the different records.

I'm planning to build my personal archive.org/waybackmachine-like web-log tool via gowitness in the not-so-distant future.

[1] https://github.com/sensepost/gowitness

joshstrange

This is cool but at this point MCP is the clear choice for exposing tools to LLMs, I'm sure someone will write a wrapper around this to provide the same functionality as an MCP-SSE server.

I want to try this out though and see how I like it compared to the MCP Puppeteer I'm using now (which does a great job of visiting pages, taking screenshots, interacting with the page, etc).

mpetrovich

Reminds me of this open source library I wrote to do the same thing: https://github.com/nextbigsoundinc/imagely

It uses puppeteer and chrome headless behind the scenes.

manmal

Being a bit frustrated with Linkwarden’s resource usage, I’ve thought about making my own self hosted bookmarking service. This could be a low effort way of loading screenshots for these links, very cool! It‘ll be interesting how many concurrent requests this can process.

quink

> SCREENSHOT_JPEG_QUALITY

Not two words that should be near each other, and JPEG is the only option.

Almost like it’s designed to nerd-snipe someone into a PR to change the format based on Accept headers.

gkamer8

> Almost like it's designed to nerd-snipe someone into a PR to change the format based on Accept headers

pls

tantaman

us ai?

bangaladore

The website [1] is very strange. What does U.S. stand for? If I were to stumble on this I'd assume it was a fishing / scam website trying to impersonate the government. Bad vibes all around.

[1] - https://us.ai/

johnmaguire

Unrelated, but I continue to be confused by "ClaudeMind" a JetBrains Plugin by "73signals": https://plugins.jetbrains.com/plugin/25082-claudemind

Their website doesn't even mention 73signals: https://claudemind.com/

Surely Anthropic must have an issue with this use of their trademark? And 73signals seems so similar to 37signals as to be intentional.

gkamer8

I'll try to improve the vibes :(

I've been working at this startup for almost two years now and that page and branding etc has been changing a lot as you can imagine ...

xp84

Just a totally normal domain for an Anguillan perspective on all things America

tolerance

The similarities with WhiteHouse.gov’s design can’t be much help either, I imagine.

wildzzz

It's one guy running his little AI startup fresh out of college. Claims to be a former national security analyst but makes no such claim on his LinkedIn.

gkamer8

Thanks for the catch on my LinkedIn, I really should have that there now. It was originally something I kept private.

ge96

the very same

aspeckt-112

I’m looking forward to giving this a go. Great idea!

_nolram

[dead]

synthomat

That's nice and everything but what to do about the EU cookie banners? Does hosting outside of the EU help?

cess11

No. Tell the services you're using to stop with the malicious compliance.

gkamer8

Yeah the EU cookie banners are annoying, I'm hoping to do some automation to click out of them before taking the screenshots

cjr

There are browser extensions you could run like consent-o-matic to try to click and hide the cookies from your screenshots:

https://chromewebstore.google.com/detail/consent-o-matic/mdj...

Otherwise using a combination of well-known class names, ‘accept’ strings, and heuristics such as z-index, position: fixed/sticky etc can also narrow down the number of likely elements that could be modals/banners.

You could also ask a vision model whether a screenshot has a cookie banner, and ask for co-ordinates to remove it, although this could get expensive at scale!

gkamer8

Thanks, that's a great idea! I was originally going to go the vision model route because I'd also like people to be able to send instructions to sign in with some credentials (like when visiting the nytimes or something).

artur_makly

yeah that's what we basically did here at https://VisualSitemaps.com, but it can also be quickly become over-the-top, and you may end up removing important content. That's why in the end we added a second option to just manually enter CSS classes.