Skip to main content

1. One line description

A tool to generate a video with synchronized voice over from a slides deck.

2. Overview

This tool (called 'vwvo' which stands for 'Video With Voice Over') takes two input files (a PDF file containing a deck of slides and a TXT file containing what to say on each of them) and generates a video with synchronized voice over:

PDF file ------. 
(slides)        \
                 \     .-------.
                  +--->|vwvo.py|-----> Video file (with voice over)
                 /     '-------'
                /
TXT file ------' 
(what to say)

3. Information for users

3.1. Installation and usage

You don't need to install anything as you can run it directly from PyPI (and you will always get the latest version). For this, make sure you have 'ffmpeg' (a multimedia framework) and 'uv' (a python package manager) installed. Then simply run the 'vwvo' script like this:

$ uvx vwvo --help

...and read all the details.

NOTE 1: The first time you run it a lot of dependencies (~1 GiB) will be downloaded to the "uv" local cache.

NOTE 2: In case you prefer to install it locally (so that you don't need Internet access the next time you want to run it), run this:

$ uv tool install vwvo

...and from that point on you will be able to directly run vwvo like this:

$ vwvo --help

3.2. Example

The 'example' directory contains files 'slides.pdf' and 'script.txt' that you can use to test the tool:

$ uvx vwvo --slides path/to/slides.pdf --script path/to/script.txt

...and then play the resulting 'output/slides.mp4' video file. Enjoy!

4. Information for developers

4.1. Local development

To run locally, clone the repo and, from the top level folder, run this:

$ uv run vwvo

NOTE: The first time you run it a lot of dependencies (~1 GiB) will be downloaded to a ".venv" folder. As long as you don't delete it it will be reused on future invokations.

4.2. Running the code linter

Before merging new changes you must also check that the following command returns an empty list of warnings:

$ ruff check .

NOTE: You might need to install "ruff" first. If so, use you distro's package manager.

4.3. Distribution (PyPI)

Once you are ready to make a release:

  1. Increase the "version" number in file "pyproject.toml"

  2. Run the next command:

    $ uv build $ uv publish

  3. Tell your users that a new version is available and that it will be automatically available when they run this:

    $ uvx run vwvo

Metadata

Release files for vwvo 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vwvo 0.1.0
File Size Uploaded
vwvo-0.1.0.tar.gz 7.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for vwvo 0.1.0
File Interpreter ABI Platform
vwvo-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 7.2 MB

Release files / vwvo-0.1.0.tar.gz

Download URL vwvo-0.1.0.tar.gz
Size 7.2 MB
Tags Source
SHA-256 checksum
How to use checksums
d0b1cc3f0fade3409a53ec89439ff743fc12b0809d3313ada4f520d64600de1f
BLAKE2b-256 checksum
How to use checksums
9bf87af1d3f6114c74be7eae387abd02d6fed25669fa0271b59cde974caf4893
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / vwvo-0.1.0-py3-none-any.whl

Download URL vwvo-0.1.0-py3-none-any.whl
Size 17.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09cb6076270b6d55f2e1959cdab91fd5082257db9df5402da0bfdb188d7feb51
BLAKE2b-256 checksum
How to use checksums
d7ade036f83efade785817a564d156ebc0bd5fddc54bffd4aa29e388e898e674
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page