Create video (with voice over) from slides deck
Project description
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:
-
Increase the "version" number in file "pyproject.toml"
-
Run the next command:
$ uv build $ uv publish
-
Tell your users that a new version is available and that it will be automatically available when they run this:
$ uvx run vwvo
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 vwvo-0.1.0.tar.gz.
File metadata
- Download URL: vwvo-0.1.0.tar.gz
- Upload date:
- Size: 7.2 MB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0b1cc3f0fade3409a53ec89439ff743fc12b0809d3313ada4f520d64600de1f
|
|
| MD5 |
5659384dd1ed29aac099d03395190565
|
|
| BLAKE2b-256 |
9bf87af1d3f6114c74be7eae387abd02d6fed25669fa0271b59cde974caf4893
|
File details
Details for the file vwvo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vwvo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.7 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09cb6076270b6d55f2e1959cdab91fd5082257db9df5402da0bfdb188d7feb51
|
|
| MD5 |
7bd5958be5d981c0444ab8ba9d43e2ab
|
|
| BLAKE2b-256 |
d7ade036f83efade785817a564d156ebc0bd5fddc54bffd4aa29e388e898e674
|