Self-hosted, simple web browser service – send URL, get screenshots
33 comments
·February 6, 2025xnx
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.
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.
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"