MoviePy is a Python library for editing video. You can use it to cut clips, glue them together, drop a title in the middle of the screen, place one video on top of another with transparency, write custom effects, and export the result. The README describes it as a tool for cuts, concatenations, title insertions, video compositing (also called non-linear editing), video processing, and the creation of custom effects. The library reads and writes the common audio and video formats, including animated GIF, and works on Windows, Mac, and Linux with Python 3.9 or newer. You install it with pip install moviepy. The project recently moved to version 2.0, which introduced breaking changes from version 1, and the README links to a migration guide and an archived copy of the v1 documentation for older code. A short example in the README shows the basic flow. You load a file called example2.mp4 with VideoFileClip, take the part between seconds 10 and 20, drop the audio volume to eighty percent, build a separate TextClip that says Hello there in white Arial at size 70, place that text in the center for ten seconds, combine the two layers with CompositeVideoClip, and call write_videofile to save the result as result.mp4. Under the hood, MoviePy loads media into Python objects backed by numpy arrays, so every pixel and every audio sample is reachable in code. That design is what lets you write a new effect in only a few lines, and the library ships a set of built-in effects you can use directly. The README is honest about the trade-off: this approach is more flexible and easier to read than calling ffmpeg yourself, but it is also slower because of the data shuffling between numpy and the encoder. The project is open source under the MIT license, originally written by Zulko, with development of version 2 led by OsaAjani. Other active maintainers listed are tburrows13 and keikoro. Documentation is hosted on a GitHub Pages site and is rebuilt on every push to master. There is a Reddit channel for usage questions and a contributing guide for code changes. The README ends with a note that more maintainers are wanted, since the team has limited bandwidth.
Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.