remotion VS puppeteer

Compare remotion vs puppeteer and see what are their differences.

SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
remotion puppeteer
23 359
19,157 86,832
1.4% 0.4%
10.0 9.9
7 days ago 6 days ago
TypeScript TypeScript
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

remotion

Posts with mentions or reviews of remotion. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-15.
  • Show HN: Revideo ā€“ Create Videos with Code
    5 projects | news.ycombinator.com | 15 Apr 2024
    Hey HN! Weā€™re building Revideo (https://github.com/redotvideo/revideo), an open source toolkit that lets you programmatically create and export videos with the animation library Motion Canvas (https://github.com/motion-canvas/motion-canvas). This is useful whenever you want to build apps that automate certain video tasks, which is increasingly possible using AI tools - for instance, one of our first users is building an app that turns code documentation into video tutorials.

    Revideo extends Motion Canvas with features that are essential for creating video, such as the ability to export audio tracks, a nodejs package for headless, parameterized & much faster rendering, and audio components that make audio editing and syncing easier. While Motion Canvas aims to be a standalone editor [1], we want to build a set of libraries that lets developers integrate video editing functionality into their apps. Our goal is to provide an open-source alternative to Remotion (https://github.com/remotion-dev/remotion).

    At the start of this year, we explored a bunch of product ideas in the space of AI-based video creation. For example, weā€™ve built apps that automatically create educational short videos and have experimented with automatically A/B testing and personalizing video ads.

    While building these products, we were frustrated with the video editing frameworks we used: Moviepy (https://github.com/Zulko/moviepy), which we relied on initially, doesnā€™t offer a way to preview your videos, so weā€™d often have to wait minutes for a video to render to test our code changes. Remotion (https://github.com/remotion-dev/remotion), which we switched to later, is really good, but we didnā€™t want to rely on it as it is not open source (source-available only). Thatā€™s why we decided to build Revideo.

    Weā€™d already been following Motion Canvas for some time and really liked using it, so we thought that extending it would get us to something useful much faster than building an animation library from scratch. Initially, we tried to build our features as Motion Canvas plugins, but this did not provide enough flexibility to achieve the desired functionality. Additionally, video-specific features (such as audio support) were generally considered out of scope by the Motion Canvas maintainers, which is why we ultimately ended up creating a fork. Weā€™re unsure if this is the right way to go in the long term, and would prefer to find a way to build Revideo without diverging from Motion Canvas too much - if you have suggestions on how to solve this, weā€™d love your input.

    Compared to Remotion, which builds on top of React, Motion Canvas uses the HTML Canvas API and makes you define animation flows with generator functions. Its API is more ā€œproceduralā€, as it makes you define the things that happen in your animation as a sequence of yields, whereas Remotion gives you a frame number and lets you declare how your video should look like at that frame.

    Our current focus is improving the open source project. In the long term, we want to make money by building a rendering service for developers building apps with Revideo. Such a service would offer a pretty similar deployment experience to Vercel, but instead of web apps, we let developers deploy Revideo projects and expose a rendering endpoint for them. Letting us manage the infrastructure will allow us to offer much faster rendering, as we can massively parallelize rendering jobs on our servers (e.g. spinning up 100 headless browsers that render 100 frames each to render a video with 10,000 frames).

    Weā€™d love to hear your feedback and suggestions! You can find our repo at https://github.com/redotvideo/revideo, Weā€™ve also released an example video editing app at https://github.com/redotvideo/revideo-saas-template. Thank you!

    [1] ā€œMotion Canvas is not a normal npm package. It's a standalone tool that happens to be distributed via npm.ā€ - https://github.com/orgs/motion-canvas/discussions/1015

  • How To Enable Hardware Acceleration on Chrome, Chromium & Puppeteer on AWS in Headless mode
    4 projects | dev.to | 25 Oct 2023
    We collaborated with the vibrant Remotion Open-source community to find the answer for using GPU with Remotion for server-side rendering. After encountering some setbacks on our way, we were able to make it work for Remotion eventually. We consolidated our findings in the Remotion Docs at Using the GPU in the Cloud and simplified the instructions for Remotion developers to make the most out of it. Although the whole research was done for Remotion, the same process will work for any headless application that requires GPU power, especially in headless mode.
  • šŸ“½ļø Introducing Swiftube - Make simple talking-head videos in React āš›ļø
    3 projects | /r/react | 28 May 2023
    Under the hood, it is powered by: - Remotion - Google TTS - OpenAI
  • Introducing āœØ Relano - Create beautiful "What's new" videos and automate your project's social media!
    3 projects | dev.to | 23 May 2023
    When I was talking with Jonny Burger (the creator of Remotion) about the challenges small open source projects face and how it becomes harder for individual maintainers who work because of their goodwill to carry their project forward, I did not realize the conversation would give birth to the idea of Relano.
  • Swiftube - Creating videos using React + AI
    4 projects | dev.to | 23 May 2023
    I loved the idea of creating videos with dynamic data using Remotion, and started to dabble with it. I had a vague idea that it can be used to make simple videos that convey some text.
  • Show HN: Algora.io ā€“ Open-source development bounties
    4 projects | news.ycombinator.com | 2 Apr 2023
    thank you for your input! the best way to ensure everyone has a great experience is to spec & scope bounty issues + provide acceptance criteria.

    you can look at Remotion's 17 completed bounties, where specs & acceptance criteria are always included: https://github.com/remotion-dev/remotion/issues?q=label%3A%2...

    that being said, we have only had a handful of projects using OSS bounties so far so we haven't seen everything under the sun. I acknowledge what you mean by blurry lines and how/when they might occur. but as I said before, when specs/scope/acceptance-criteria are in place, it's really hard to go wrong

  • 7 great libraries for React
    6 projects | dev.to | 5 Feb 2023
    7: Remotion
  • What Instance Class Should I Choose For An Express APP?
    1 project | /r/googlecloud | 21 Nov 2022
    I recently worked on a hobby project recently that used ffmpeg and Remotion to render short videos before uploading them to Cloud Storage from a Cloud Run service. I used Pub/Sub to start renders by pushing messages to a rendering container with the info required to generate a video.
  • How we spent Hacktoberfest 2022
    1 project | dev.to | 7 Nov 2022
    As for the PRs, one of our developers, Stefan Uzunov improved the Remotion CLI by adding some enhanced interactivity and sane defaults when picking which composition gets rendered, while Ilija Boshkov contributed by packaging an existing component into a mainline Remotion package for adding motion blur to Remotion videos.
  • Automating text changes
    2 projects | /r/AfterEffects | 15 Aug 2022
    If you don't have to stay in AE, you could look into ReMotion which can create animations by code and export a video file.

puppeteer

Posts with mentions or reviews of puppeteer. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-23.
  • Sometimes things simply don't work
    3 projects | dev.to | 23 Apr 2024
    I am not in any way associated with the developers at puppeteer, but if you are looking for a way to contribute, they are open source
  • The best testing strategies for frontends
    8 projects | dev.to | 22 Apr 2024
    With the advent of tools like Puppeteer and now Playwright, end-to-end testing has become much easier and more reliable. For anyone who's used Selenium in the past, you know what I'm talking about. Puppeteer has opened the way in terms of E2E tooling, but Playwright has taken it to the next level and made it easier to await for certain selectors or conditions to be fulfilled (via locators), thus making tests more reliable and less flaky. Also, it's a game changer that it introduced a test-runner - this made the integration between the headless browser and the actual test code much smoother.
  • Learn Automated Testing At Home: A Beginner's Guide
    4 projects | dev.to | 4 Apr 2024
    1.Puppeteer: Puppeteer is a Node library that provides a high-level API to control headless Chrome or Chromium using the DevTools Protocol. Key Features: More control over Chrome. Enables web scraping. Allows taking screenshots and generating PDFs for UI testing. Measures load times through the Chrome Performance Analysis tool
  • HTML to PDF renderers: A simple comparison
    4 projects | dev.to | 26 Mar 2024
    HTML to PDF conversion is a common requirement in modern web applications. It allows users to save web pages, reports, and other content in a format that is easy to share and print. There are many libraries and services available for converting HTML to PDF, each with its own strengths and weaknesses. In this article, we will compare some of the most popular HTML to PDF renderers in Node.js, including Puppeteer, Playwright, node-html-pdf, and Onedoc.
  • Let's build a screenshot API
    8 projects | dev.to | 24 Mar 2024
    Playwright seems to be a superior library for working with headless browsers than Puppeteer, but I will go with Puppeteer.
  • JS Toolbox 2024: Bundlers and Test Frameworks
    10 projects | dev.to | 3 Mar 2024
    Puppeteer is a Node library that provides a high-level API to control headless Chrome or Chromium. It's primarily used for browser automation, making it a powerful tool for end-to-end testing of web applications, taking screenshots, and generating pre-rendered content from web pages.
  • Next.js 14 Booking App with Live Data Scraping using Scraping Browser
    3 projects | dev.to | 22 Feb 2024
    Puppeteer
  • Eleve o nĆ­vel de suas AplicaƧƵes Javascript com Load Test
    2 projects | dev.to | 17 Feb 2024
    Website: pptr.dev RepositĆ³rio: GitHub
  • Pyppeteer Tutorial: The Ultimate Guide to Using Puppeteer with Python
    5 projects | dev.to | 5 Feb 2024
    # Define variables PYTHON := python3 POETRY := poetry PYTEST := pytest PIP := pip3 PROJECT_NAME := web automation with Pyppeteer .PHONY: install install: $(POETRY) install @echo "Dependency installation complete" $(PIP) install -r requirements.txt @echo "Set env vars LT_USERNAME & LT_ACCESS_KEY" # Procure Username and AccessKey from https://accounts.lambdatest.com/security export LT_USERNAME=himansh export LT_ACCESS_KEY=Ia1MiqNfci .PHONY: install poetry-install: poetry install .PHONY: test test: export NODE_ENV = test .PHONY: test pyunit-pyppeteer: - echo $(EXEC_PLATFORM) - $(PYTHON) tests/pyunit-pyppeteer/test_pyunit_pyppeteer.py .PHONY: test pytest-pyppeteer: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s -n 2 tests/pytest-pyppeteer/test_pytest_pyppeteer_1.py \ tests/pytest-pyppeteer/test_pytest_pyppeteer_2.py .PHONY: test pyunit-pyppeteer-browser-session: - echo $(EXEC_PLATFORM) - $(PYTHON) tests/starting-browser-session/pyunit/test_pyppeteer_browser_session.py .PHONY: test pytest-pyppeteer-browser-session: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s \ tests/starting-browser-session/pytest/test_pyppeteer_browser_session.py .PHONY: test asyncio-run-pyppeteer-browser-session: - echo $(EXEC_PLATFORM) - $(PYTHON) tests/starting-browser-session/asyncio_run/test_pyppeteer_browser_session.py .PHONY: test asyncio-run-complete-pyppeteer-browser-session: - echo $(EXEC_PLATFORM) - $(PYTHON) tests/starting-browser-session/\ asyncio_run_until_complete/test_pyppeteer_browser_session.py .PHONY: test pyppeteer-button-click: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s tests/button-click/test_page_class_click.py .PHONY: test pyppeteer-activate-tab: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s tests/active-tab/test_page_class_bringtofront.py ###### Testing Custom Environment - https://miyakogi.github.io/pyppeteer/reference.html#environment-variables # Available versions: 113, 121, and default .PHONY: test pyppeteer-custom-chromium-version: - echo $(EXEC_PLATFORM) - echo 'Browser Version:' $(CHROMIUM_VERSION) - $(PYTEST) --verbose --capture=no -s tests/custom-configuration/test_launcher_exe_path.py ###### Testing Headless - https://miyakogi.github.io/pyppeteer/reference.html#launcher # Available values: headless and non-headless .PHONY: test pyppeteer-custom-browser-mode: - echo $(EXEC_PLATFORM) - echo $(BROWSER_MODE) - $(PYTEST) --verbose --capture=no -s tests/custom-configuration/test_launcher_headless.py .PHONY: test pyppeteer-generate-pdf: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s tests/generate-pdf/test_page_class_pdf.py .PHONY: test pyppeteer-generate-screenshot: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s tests/generate-screenshots/test_page_class_screenshot.py .PHONY: test pyppeteer-cookies: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s tests/handling-cookies/test_page_class_cookies.py .PHONY: test pyppeteer-dialog-box: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s tests/handling-dialog-box/test_handling_dialog_box.py .PHONY: test pyppeteer-iframe: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s tests/handling-iframe/test_page_class_iframe.py # Like Puppeteer, Navigation operations mentioned below only work in Headless mode # goBack: https://miyakogi.github.io/pyppeteer/reference.html#pyppeteer.page.Page.goBack # goForward: https://miyakogi.github.io/pyppeteer/reference.html#pyppeteer.page.Page.goForward # Bug Link # https://github.com/puppeteer/puppeteer/issues/7739 # https://stackoverflow.com/questions/65540674/how-to-error-check-pyppeteer-page-goback .PHONY: test pyppeteer-navigate-ops: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s tests/navigate-operations/test_page_class_navigation_ops.py .PHONY: test pyppeteer-request-response: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s tests/request-response/test_page_class_req_resp.py .PHONY: test pyppeteer-viewport: - echo $(EXEC_PLATFORM) - echo $(BROWSER_MODE) - $(PYTEST) --verbose --capture=no -s tests/setting-useragent-viewports/\ test_page_class_useragent_viewport.py::test_mod_viewport .PHONY: test pyppeteer-non-headless-useragent: - echo $(EXEC_PLATFORM) - echo $(BROWSER_MODE) - $(PYTEST) --verbose --capture=no -s tests/setting-useragent-viewports/\ test_page_class_useragent_viewport.py::test_get_nonheadless_user_agent .PHONY: test pyppeteer-headless-useragent: - echo $(EXEC_PLATFORM) - echo $(BROWSER_MODE) - $(PYTEST) --verbose --capture=no -s tests/setting-useragent-viewports/\ test_page_class_useragent_viewport.py::test_get_headless_user_agent .PHONY: test pyppeteer-dynamic-content: - echo $(EXEC_PLATFORM) - echo $(BROWSER_MODE) - $(PYTEST) --verbose --capture=no -s -n 4 tests/handling-dynamic-content/\ test_page_class_lazy_loaded_content.py .PHONY: test pyppeteer-web-scraping: - echo $(EXEC_PLATFORM) - $(PYTEST) --verbose --capture=no -s tests/web-scraping-content/\ test_scraping_with_pyppeteer.py .PHONY: clean clean: # This helped: https://gist.github.com/hbsdev/a17deea814bc10197285 find . | grep -E "(__pycache__|\.pyc$$)" | xargs rm -rf rm -rf .pytest_cache/ @echo "Clean Succeeded" .PHONY: distclean distclean: clean rm -rf venv .PHONY: help help: @echo "" @echo "install : Install project dependencies" @echo "clean : Clean up temp files" @echo "pyunit-pyppeteer : Running Pyppeteer tests with Pyunit framework" @echo "pytest-pyppeteer : Running Pyppeteer tests with Pytest framework" @echo "pyunit-pyppeteer-browser-session : Browser session using Pyppeteer and Pyunit" @echo "pytest-pyppeteer-browser-session : Browser session using Pyppeteer and Pytest" @echo "asyncio-run-pyppeteer-browser-session : Browser session using Pyppeteer (Approach 1)" @echo "asyncio-run-complete-pyppeteer-browser-session : Browser session using Pyppeteer (Approach 2)" @echo "pyppeteer-button-click : Button click demo using Pyppeteer" @echo "pyppeteer-activate-tab : Switching browser tabs using Pyppeteer" @echo "pyppeteer-custom-chromium-version : Custom Chromium version with Pyppeteer" @echo "pyppeteer-custom-browser-mode : Headless and non-headless test execution with Pyppeteer" @echo "pyppeteer-generate-pdf : Generating pdf using Pyppeteer" @echo "pyppeteer-generate-screenshot : Generating page & element screenshots with Pyppeteer" @echo "pyppeteer-cookies : Customizing cookies with Pyppeteer" @echo "pyppeteer-dialog-box : Handling Dialog boxes with Pyppeteer" @echo "pyppeteer-iframe : Handling iFrames with Pyppeteer" @echo "pyppeteer-navigate-ops : Back & Forward browser operations with Pyppeteer" @echo "pyppeteer-request-response : Request and Response demonstration using Pyppeteer" @echo "pyppeteer-viewport : Customizing viewports using Pyppeteer" @echo "pyppeteer-non-headless-useragent : Customizing user-agent (with browser in headed mode) using Pyppeteer" @echo "pyppeteer-headless-useragent : Customizing user-agent (with browser in headless mode) using Pyppeteer" @echo "pyppeteer-dynamic-content : Handling dynamic web content using Pyppeteer" @echo "pyppeteer-web-scraping : Dynamic web scraping using Pyppeteer"
  • How to build a WhatsApp AI assistant
    7 projects | dev.to | 26 Jan 2024
    This library works by creating an instance of WhatsApp web running inside an instance of headless chrome automated by puppeteer. In my testing, I ran into tons of compatibility issues when trying to use these dependencies inside anything other than a bare-bones Node.js + express server. Also, we canā€™t spin up a new instance of chrome and WhatsApp web each time a user sends a message, this will exhaust our allowed WhatsApp connections (4 max), not to mention that doing this will make the response times painfully slow.

What are some alternatives?

When comparing remotion and puppeteer you can also consider the following projects:

vime - Customizable, extensible, accessible and framework agnostic media player. Modern alternative to Video.js and Plyr. Supports HTML5, HLS, Dash, YouTube, Vimeo, Dailymotion...

axios - Promise based HTTP client for the browser and node.js

svelte-in-motion - Remotion clone, but in Svelte!

Nightmare - A high-level browser automation library.

liqvid - Library for interactive videos in React

WKHTMLToPDF - Convert HTML to PDF using Webkit (QtWebKit)

remotion - šŸŽ„ Create videos programmatically in React [Moved to: https://github.com/remotion-dev/remotion]

Playwright - Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.

twilio-video-app-react - A collaboration application built with the twilio-video.js SDK and React.js

puppeteer-extra - šŸ’Æ Teach puppeteer new tricks through plugins.

headless-gl - šŸŽƒ Windowless WebGL for node.js

karma - Spectacular Test Runner for JavaScript