Re:Show HN: Chromda – Serverless Website Screenshots
by whoisjuan on Monday December 30, 2019 @01:06AM
(#21911182)
This is very impressive (the way that is implemented on top AWS services).
I would be curious to see how accurate it is when it comes to rendering. I have a Screenshot as a Service side project (https://getscreenshot.rasterwise.com) that is also build with Puppeteer, but accuracy is a completely different animal.
Out of the box Puppeteer is really not that accurate so you need fine tune it to address a huge amount of rendering edge cases.
This is the area where most services come short imo. I have put a lot of effort into optimizing my service accuracy but it’s a never-ending task. There always seems to be one website that doesn’t render the way it’s supposed to be rendered.
I really don’t understand why headless browsers seem to be developed with UI rendering as a low priority. Simulating a viewport is not equal to simulating an actual screen.
Re:Show HN: Chromda – Serverless Website Screenshots
by cjr on Monday December 30, 2019 @05:05AM
(#21912273)
I hear you. I run Urlbox (https://urlbox.io) and accuracy is one of the hardest parts, as well as scaling hundreds or thousands of instances of chrome since it’s a real memory hog.
I also managed to get a version of the urlbox renderer working on lambda but it fails on some websites due to the /tmp space limits, for example trying to do a full page screenshot of a heavy page like dailymail would use up all of the available disk space in the lambda environment with chrome’s media cache.
Re:Show HN: Chromda – Serverless Website Screenshots
by whoisjuan on Monday December 30, 2019 @11:39AM
(#21914553)
Love what you have done with URLBOX dude! That's my goal standard when it comes to improving accuracy for GetScreenshot. I have tested with your website preview and I think both of our solutions nail accuracy, but you have been longer in this game so you probably have way more edge cases covered. I still find myself trying to address new edge cases every certain time.
Re:Show HN: Chromda – Serverless Website Screenshots
by lfarzati on Monday December 30, 2019 @12:18PM
(#21914933)
This is for making the uploaded images in S3 accessible by anyone. The rationale is that the screenshots can be viewed by browsers without any sort of authorization.
But since this is just an environment setting, you can change it if your use case is different.
Re:Show HN: Chromda – Serverless Website Screenshots
by tlarkworthy on Monday December 30, 2019 @07:23AM
(#21912841)
Oh cool. I did a similar thing for snapshotting Unity games https://corepox.net/devlog/visual-game-worlds-hosted-on-func.... The joy of Chrome is that it has a webGL software implementation, so you don't need to spin up GPUs to get a graphical runtime of a 3D game engine.
Re:Show HN: Chromda – Serverless Website Screenshots
by sharma_pradeep on Monday December 30, 2019 @04:38AM
(#21912149)
Is there any javascript library to do the same?
It would be useful to have a library as a dependency and just initialize it in the code and then you have screenshot in meta of each page
I would be curious to see how accurate it is when it comes to rendering. I have a Screenshot as a Service side project (https://getscreenshot.rasterwise.com) that is also build with Puppeteer, but accuracy is a completely different animal.
Out of the box Puppeteer is really not that accurate so you need fine tune it to address a huge amount of rendering edge cases.
This is the area where most services come short imo. I have put a lot of effort into optimizing my service accuracy but it’s a never-ending task. There always seems to be one website that doesn’t render the way it’s supposed to be rendered.
I really don’t understand why headless browsers seem to be developed with UI rendering as a low priority. Simulating a viewport is not equal to simulating an actual screen.
I also managed to get a version of the urlbox renderer working on lambda but it fails on some websites due to the /tmp space limits, for example trying to do a full page screenshot of a heavy page like dailymail would use up all of the available disk space in the lambda environment with chrome’s media cache.
S3_ACL "public-read"
It will be great if you can explain why and how is this used in the ReadMe file.
But since this is just an environment setting, you can change it if your use case is different.
[ ......] / extract:aws-sdk: sill extract [email protected] extracted to /home/foo/serverless_apps/chromda/node_modules/.staging/...
Any tips or tricks would be much appreciated?
Quickly browsed through the code and I don't think it supports local pages but might throw a PR your way to add support if you don't mind. Thanks!