Export prezi.com presentations to PDF. Drives a headless browser and screenshots every step.
Project description
unprezi
Export a prezi.com presentation to a PDF. It opens the presentation in a headless
browser, steps through the whole path, and saves each stop as a page. Works on
today's prezi.com/view/ share links, and you don't need a Prezi Plus/Pro account.
Why this exists
I needed to get a Prezi out as a PDF and reached for prezi2pdf, the tool everyone links to. It doesn't work anymore. Prezi locked down the storyboard API it pulled slides from, so now it just 403s. A few open issues on that repo are people hitting the same wall.
So unprezi takes the other route. Instead of asking Prezi's API for the slides, it watches the presentation play: open it in a browser, press the arrow key, screenshot the canvas at every step, stitch the frames into a PDF. Slower than an API call, but it survives whatever Prezi changes on their backend, because the one thing it leans on is the presentation playing in a tab.
Install
pip install unprezi
playwright install chromium
The second line is a one-time download of the browser Playwright drives (~150 MB).
Use it
unprezi "https://prezi.com/view/XXXXXXXXXXXXXXXX/"
That writes <presentation-title>.pdf next to you. The URL is the share link you
get from Prezi's "Share" button, or just the address bar while you're viewing one.
Common flags:
| Flag | What it does |
|---|---|
-o out.pdf |
Pick the output path. |
--jpeg-quality 82 |
Recompress pages as JPEG. Much smaller PDF, slightly softer. |
--png -o frames/ |
Write one PNG per step instead of a PDF. |
--scale 3 |
Render sharper (default is 2). Use it if text looks soft. |
--delay 2.5 |
Fixed wait per step instead of auto-detecting. Bump it if a frame looks caught mid-zoom. |
--headed |
Show the browser so you can watch it work. |
Full list: unprezi --help.
What you get
One page per stop along the presentation path, at the resolution the viewer renders. Prezis zoom back out to a section overview between topics, and those overview frames are real stops on the path, so they land in the PDF too. You get the presentation the way it plays, not a guess at where the slide boundaries are.
What it can't do
- It captures each step after it settles, so zoom animations and transitions don't carry into a static PDF. You keep the frames, without the motion between them.
- Embedded video and audio become a still image of wherever they were paused.
- Timing is a best guess. unprezi waits for each step to stop moving before it
shoots, but a heavy step can still get caught mid-zoom.
--delayis the knob for that. - Older "classic" Prezis (the
prezi.com/<id>/<title>/ones) work, but their canvas renders smaller, so bump--scaleif you want them crisp.
FAQ
Do I need a paid Prezi account? No. If you can open the link, unprezi can export it.
How is this different from prezi2pdf? prezi2pdf asked Prezi's storyboard API for pre-rendered slide images. That API is locked down now, so it fails on current links. unprezi screenshots the live presentation instead, which is why it still works.
Why is it slow? It plays the whole presentation in real time and waits for each step to settle before shooting. A 40-step prezi takes a few minutes. That's the trade for not depending on a private API.
A frame came out mid-animation. Raise --delay (e.g. --delay 3) so it
waits longer before each shot.
Using it from Claude Code
There's a Claude skill in here too. Drop the skill/unprezi
folder into your skills directory and Claude can export a Prezi for you, either by
running this CLI or by driving its own Playwright browser the same way when the
CLI isn't installed.
A note on use
unprezi is for getting presentations out that you have the right to: your own talks, or public ones you want to read offline. It only sees what's already visible from a share link; it doesn't get past logins or private content. Respect the author's work and Prezi's terms, and don't pass off someone else's presentation as your own.
Credit
Built in the spirit of prezi2pdf by Gertje823, which is what got people exporting Prezis in the first place. Different approach under the hood, same goal.
License
MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unprezi-0.1.2.tar.gz.
File metadata
- Download URL: unprezi-0.1.2.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
365f15ab489439b7f0ac5cc9be51da1934aefb053f0d5b5ef5f51451017e9f50
|
|
| MD5 |
a6d3eaa511172edd8ae91a77cebb39f8
|
|
| BLAKE2b-256 |
72010851804c7a4e718f285ebf774c273c795d0e98e8dec9ebc4b4003bba0f69
|
File details
Details for the file unprezi-0.1.2-py3-none-any.whl.
File metadata
- Download URL: unprezi-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5f09286138a70533af06965b7493479a3aff7831f16dc39182d6340d30f4b80
|
|
| MD5 |
7947f880a9b3c402eb6114cefadf2716
|
|
| BLAKE2b-256 |
f23791251b1dca917efc29f3b41367150d1e914c35e7fddf0272bdc42d120392
|