7 ms·
I use Playwright to intercept all requests and responses and have Claude Code navigate to a website like YouTube and click and interact with all the elements an
by dataviz1000 7mo ago
I use Playwright to intercept all requests and responses and have Claude Code navigate to a website like YouTube and click and interact with all the elements and inputs while recording all the requests and responses associated with each interaction. Then it creates a detailed strongly typed API to interact with any website using the underlying API.
Yes, I know it likely breaks everybody's terms of service but at the same time I'm not loading gigabytes of ads, images, markup, to accomplish things.
If anyone is interested I can take some time and publish it this week.
- rkagerer 7mo agoI assume you're not logged into those sites, in order to avoid bans and the risk of hitting the wrong button like, say, "Delete Account".
- dataviz1000 7mo agoIt turns any authenticated browser session into a fully typed REST API proxy — exposing discovered endpoints as local Hono routes that relay requests through the browser, so cookies and auth are automatic. The point is that it creates an API proxy in code that a Typescript server calls directly. The AI runs for about 10 minutes with codegen. The rest of the time it is just API calls to a service. Remove the endpoint for "Delete Account" and that API endpoint never gets called. This 100% breaks everyone's terms of service. I would not recommend nor encourage using.
- xrd 7mo agoYes, please do!
- dataviz1000 7mo ago100% I'll response to this by Friday with link to Github. I use Patchright + Ghostery and I have a cleaver tool that uses web sockets to pass 1 second interval screenshots to the a dashboard and pointer / keyboard events to the server which allow interacting with websites so that a user can create authentication that is stored in the chrome user profile with all the cookies, history, local storage, ect.. in the cloud on a server. Can you list some websites that don't require subscription that you would like to me to test against? I used this for Robinhood and I think Linked in would be a good example for people to use.
- zzleeper 7mo agoAnother +1, it would be incredibly useful to play with this approach! (and fun)
- botanrice 7mo agoWould you be open to sharing your Github profile now so I could follow you? I don't check on here very often.
- bengt 7mo agoI empathize with you in that once you publish a timeline people's expectations can be come unfair; so where is it‽ :)
- dataviz1000 7mo agoIt got out of hand :) It will make a proxy API from any transport from any website using Claude Opus 4.6 -- oneshot I need help testing it before I share it with everyone. Can you send message to [HN username]@gmail.com
- defen 7mo agoWould this hypothetically be able to download arbitrary videos from youtube without the constant yt-dlp arms race?
- dataviz1000 7mo ago> yt-dlp arms race I don't know anything about yt-dlp. It would probably help people who want to go to a concert and have a chance to beat the scalpers cornering the market on an event in 30 seconds hitting the marketplace services with 20,000 requests. I can try to see if can bypass yt-dlp. But that is always a cat and mouse game.
- defen 7mo agoTo clarify - yt-dlp is a command line tool for downloading youtube videos, but it's in a constant arms race with the youtube website because they are constantly changing things in a way that blocks yt-dlp.
- dexterdog 7mo agoI wouldn't call it an arms race. I don't update my client that often and I rarely have problems downloading any video with it.
- dawnerd 7mo agoDon’t know how this could be more stable than ytdlp. When issues come up they’re fixed really quickly.
- varenc 7mo agoyt-dlp was very recently broken for ~2 days for any Youtube videos that required cookies: https://github.com/yt-dlp/yt-dlp/issues/16212 https://github.com/yt-dlp/yt-dlp/issues/16212 Here is what actually fixed it: https://github.com/yt-dlp/ejs/pull/53/changes https://github.com/yt-dlp/ejs/pull/53/changes yt-dlp is relatively stable, but still occasionally breaks for long periods. I get the sense YouTube is becoming increasingly adversarial to yt-dlp as well. I don't know the details, but it doesn't seem like yt-dlp is running the entire YouTube JS+DOM environment. Something like a real headless browser seems like it would break less often, but be much heavier weight. And Youtube might have all sorts of other mitigations against this approach.
- Axsuul 7mo agoWhy even use Playwright for this? I feel like Claude just needs agent-browser and it can generate deterministic code from it.
- dsrtslnd23 7mo agoyou mean this one? https://github.com/vercel-labs/agent-browser https://github.com/vercel-labs/agent-browser
- dataviz1000 7mo agoIt is 2 months old! My excuse for not keeping up is that I'm in so deep that Claude Code can predict the stock market. I'll still publish mine and see if has any value but agent browser looks very complete. Thank you for sharing!
- bartek_gdn 7mo agoYes please, maybe there will be some solution that will fit the problem better! I recently released something similar, and because of the small API, I'm more comfortable using it. https://news.ycombinator.com/item?id=47207790 https://news.ycombinator.com/item?id=47207790
- citizenpaul 7mo ago>I'm in so deep that Claude Code can predict the stock market. What?
- Barbing 7mo ago>I'm in so deep that Claude Code can predict the stock market. “What?”, more polite than “yeah right” :) (oh I guess obviously it would have a chance at nailing it for weeks in a row, and have more good years than bad—since actively managed funds can pull that off until, universally, they can’t [beat the market])
- djsavvy 7mo ago> Claude Code can predict the stock market. Please say more!
- Johnny_Bonk 7mo agoYes, please do and ping me when it's done lol. Did you make it into an agent skill?
- dataviz1000 7mo agoExactly, it is an agent skill that interacts pressing buttons and stuff with a webpage capturing and documenting all the API requests the page makes using Playwright's request / response interception methods. It creates and strongly typed well documented API at the end.
- bengt 7mo agoSounds awesome. I've been using mitmproxy's --mode local to intercept with a separate skill to read flow files dumped from it, but interactive is even better.
- schainks 7mo agoVery interested. Would even pay for an api for this. I am doing something similar with vibium and need something more token efficient.
- hugs 7mo agohave you tried vibium's cli + agent skill?
- schainks 7mo agoYes, it's pretty good! I've also written API harnesses for bot-based browser automation so that you can detect fields to fill in, remember where they are for next time you need them, and then if the webpage changes, re-explore and rewrite the tags to remember for the new form fields. Spoiler: this is to automate ticket submission to my landlord's half-baked web portal, not some kind of nefarious captcha breaking thing.
- retinaros 7mo agoisnt it what everyone that needs web validation does?
- toomuchtodo 7mo agoPlease publish!
- lizhang 7mo agothat sounds like a great tool
- mikrl 7mo agoI was doing similar by capturing XHR requests while clicking through manually, then asking codex to reverse engineer the API from the export. Never tried that level of autonomy though. How long is your iteration cycle? If I had to guess, mine was maybe 10-20 minutes over a few prompts.
- bredren 7mo agoI also do this. My primary use case is for reproducing page layout and styling at any given tree in the dom. So, capturing various states of a component etc. I also use it to automatically retrieve page responsiveness behavior in complex web apps. It uses playwright to adjust the width and monitor entire trees for exact changes which it writes structured data that includes the complete cascade of styles relevant with screenshots to support the snapshots. There are tools you can buy that let you do this kind of inspection manually, but they are designed for humans. So, lots of clickety-clackety and human speed results. --- My first reaction to seeing this FP was why are people still releasing MCPs? So far I've managed to completely avoid that hype loop and went straight to building custom CLIs even before skills were a thing. I think people are still not realizing the power and efficiency of direct access to things you want and skills to guide the AI in using the access effectively. Maybe I'm missing something in this particular use case?
- AlphaSite 7mo agoits mostly because MCPs handle auth in a standardised way and give you a framework you can layer things like auth, etc on top of. Without it youre stuck with the basic http firewall, etc which is extremely dangerous and this is maybe the 1 opportunity we have to do this.
- re5i5tor 7mo agoAnd people forget, Claude Code isn’t the only Claude surface, and CLIs don’t help in other surfaces other than Cowork.
- A7OM 7mo ago[dead]
- ranyume 7mo ago> My first reaction to seeing this FP was why are people still releasing MCPs? MCPs are more difficult to use. You need to use an agent to use the tools, can't do it manually easily. I wonder if some people see that friction as a feature.
- 7mo ago
- liamdgray 7mo agoPlease do!
- halJordan 7mo agoI love how HN is loving this idea when it's the exact same thing Anthropic and OpenAi (and every other llm maker) did. It's God's gift to them when it lets them bypass ads and dl copyrighted material. But it's Satan's curse on humanity when the Zuck does it to train his llm and dl copyrighted material.
- tclancy 7mo agoSo you’re that Hal Jordan then? Why would a Green Lantern feel the need to defend either? I feel like the Guardians would not accept your arguments as soon as you got to Oa, poozer. I guess what I am saying is don’t have a famous name. Seems obvious.
- llbbdd 7mo agoOP appears to be talking about real life. What are you on about?
- bryanrasmussen 7mo agothe user name he is responding to is HalJordan, Hal Jordan is the name of a comic book superhero: Green Lantern, a moral paragon. on edit: he is evidently being "sarcastic"
- deaux 7mo agoBoth scale and purpose make them completely different things. You're acting as if they're the same when they're not.
- eipi10_hn 7mo agoI won't comment about dl but ads are trackers and spyware for me. I don't spy on websites' owners, I have my human rights to stop those trackers. Zuck serves ads/spywares to other users, he deserves to taste his own medicines, not me.
- cyberax 7mo agoI would love to pay for content. I'm _paying_ for YouTube Premium. But heck. Do I hate the YouTube interface, it degraded far past usability.
- miohtama 7mo agoI just ask Claude to reverse engineer the site with Chrome MCP. It goes to work by itself, uses your Chrome logged in session cookies, etc.
- heystefan 7mo agoCommenting to follow up.
- citizenpaul 7mo agoId like to see this published as well thx!
- 3abiton 7mo agoI always used playwrite as an alternative to selenium, relatively surprised by its ability to interface with LLMs.
- fuzzyfizz 7mo agoWow. Yes please.
- zacmps 7mo agoI would love it if you had time to publish it!
- TimCTRL 7mo ago+1, publish, but how will we know when you have published...
- kolinko 7mo agoPlease do. Did you compare playwright with mcp? Why one over another? I use MCP usually, because I heard it’s less detectable than playwright, and more robust against design changes, but I didn’t compare/test myself
- cbility 7mo agoI use chrome devtools MCP to the same end - it works great for me. Interested in what advantages you see in using Playwright over chrome devtools?
- bheadmaster 7mo agoI am EXTREMELY interested. Please publish it.
- mistyvales 7mo agoI would like to see this!
- sidwyn 7mo agoI do something similar [1] but it leverages WebMCP (see Amazon example [2]). Could probably turn it into a strongly typed API. [1] https://github.com/sidwyn/webmcp-tool-library https://github.com/sidwyn/webmcp-tool-library [2] https://github.com/sidwyn/webmcp-tool-library/blob/main/content/sites/amazon/tools/getProductDetails.js https://github.com/sidwyn/webmcp-tool-library/blob/main/cont...
- swyx 7mo agoyes please! i need a "comment to follow" functionality on HN
- swyx 7mo agoi had claude code oneshot it: https://github.com/swyxio/websiteinterceptor https://github.com/swyxio/websiteinterceptor
- npunt 7mo agothanks swyx! you're always on top of stuff
- dataviz1000 7mo agoCan I contact you to get some feedback on what I did before I release it?
- felarof 7mo agoI do this via BrowserOS -- https://github.com/browseros-ai/BrowserOS https://github.com/browseros-ai/BrowserOS It has an in-built MCP server and I use it with claude code, codex and like it quite a lot.
- arjunchint 7mo agoWith our rtrvr.ai Extension we are actually about to allow anyone to do this with just prompting: - the agent takes actions on a page - network calls recorded - agent writes script to hit endpoints directly at scale - requests made from main world of webpage so automatically get auth headers added Basically what you do manually but done via the agent in a minute and for FREE from an AI Studio API key