skillfed

moviepy

Video editing with Python

moviepy v2.2.1 8.2M downloads/30d#1,654 on PyPI
Permissive license MIT License AGING released

What it is and what it does

MoviePy converts video and audio files into Python objects (numpy arrays) so you can access individual frames and apply effects programmatically. It handles reading multiple formats (mp4, webm, gif), compositing clips together, adding text overlays, adjusting volume, and writing the result back to disk. The library trades raw speed for flexibility—operations are slower than calling ffmpeg directly because of the overhead of importing and exporting media as arrays, but this makes it approachable for developers who want to script video workflows in pure Python.

The package depends on imageio for media I/O, imageio_ffmpeg to provide ffmpeg binaries, numpy for array operations, and several utility libraries (decorator, proglog, python-dotenv, pillow). It runs on Windows, Mac, and Linux with Python 3.9+. Version 2.2.1 is a recent stable release, though the project entered v2 with significant breaking changes from v1, so upgrading existing code may require work.

Use it for:

  • Batch-process video files: cut, concatenate, or resize multiple videos programmatically.
  • Add dynamic overlays: insert text, images, or watermarks at specific times or positions.
  • Generate animated GIFs from video clips or sequences of images.
  • Build video pipelines: chain effects, transitions, and compositing operations in code.
  • Extract and manipulate audio: adjust volume, mix tracks, or sync with video frames.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

MoviePy is a Python library for video editing that reads, processes, and writes video and audio files by converting them to numpy arrays for frame-level manipulation and effect application.

Yes, if you need to automate video editing workflows in Python and can accept slower performance than raw ffmpeg. The low install friction, permissive license, and stable API make it a solid choice for scripted video tasks. The aging maintenance status (450 days since last release) is a minor concern but not a blocker given the Production/Stable classifier and active maintainers. Be aware of v2 breaking changes if upgrading from v1.

Install

moviepy on PyPI

pip

pip install moviepy

uv

uv add moviepy

poetry

poetry add moviepy

Installing moviepy

Before you install

Low install friction with a pure-Python wheel distribution. Maintenance status is aging—last release was 450 days ago—though the project remains in Production/Stable status with active maintainers listed. The v2 upgrade introduced breaking changes, so existing codebases may require migration effort.

License in practice

MIT License (permissive) means you can use, modify, and distribute MoviePy freely in commercial and private projects with minimal restrictions, provided you include the license notice.

Quickstart

pip install moviepy

from moviepy import VideoFileClip, TextClip, CompositeVideoClip

clip = VideoFileClip("video.mp4").subclipped(10, 20)
txt_clip = TextClip(text="Hello", font_size=70, color='white').with_duration(10)
final = CompositeVideoClip([clip, txt_clip])
final.write_videofile("output.mp4")

Requires Python 3.9+ and ffmpeg installed on the system (imageio_ffmpeg handles this on most platforms, but custom ffmpeg setups may need manual configuration).

Verify before relying

  • Whether v2's breaking changes affect common workflows or only edge cases.
  • Performance characteristics for large video files or real-time processing.
  • Current state of issue backlog and typical response time for bug reports.

Package facts

License MIT License (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 7 — decorator, imageio, imageio_ffmpeg, numpy, proglog, python-dotenv, pillow
Maintenance aging — 450 days since the last release
First released
Downloads 8,186,009/month — #1,654 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: moviepy-2.2.1-py3-none-any.whl

Keywords: video, editing, audio, compositing, ffmpeg

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.9Topic :: MultimediaTopic :: Multimedia :: Sound/AudioTopic :: Multimedia :: Sound/Audio :: AnalysisTopic :: Multimedia :: VideoTopic :: Multimedia :: Video :: CaptureTopic :: Multimedia :: Video :: Conversion

Tags

python video editing libraryvideo compositing and effectsffmpeg python wrappervideo frame manipulationaudio video processing pythoncreate videos programmaticallyvideo concatenation and cutting
video-editingffmpeg-wrappermedia-processing

More Multimedia packages