A CLI Tool for creating video compilations of quotes of series/movies/animes automatically
APACHE-2.0 License
A CLI Tool for finding quotes in series/movies/animes and automatically creating video compilations.
Usage: quoteclipper [OPTIONS] [DIRECTORY]
Options:
-m, --match TEXT [required]
-o, --output PATH Name of the output movie. [default:
./Compilation of {}.mp4]
-e, --export-clips Export individual clips
-ed, --export-clips-dir PATH Directory to export clips to (must exist)
[default: .]
-et, --export-clips-template TEXT
Template to be used as clips filenames.
(Variables: n, index, basename, quote,
start, end, duration) [default: {n} -
{quote}.mp4]
--dry-run / --no-dry-run Skip the generation of clips
-t, --offset <start> <end> Offset the start and end timestamps. For
example --offset -1.5 1.5 will make each
clip 3s longer. [default: 0.0, 0.0]
-c, --case-sensitive Case sensitive match (ignored by --regex)
-re, --regex Interpret matches as regular expressions.
Example '/foo \w+/i'
--help Show this message and exit.
quoteclipper -match Hello
You can use the parameter -m
or -match
as many times as you want
# find quotes containing Hello or Hey
quoteclipper -m Hello -m Hi -m Hey
You need to use quotes if a sentence contain spaces
quoteclipper -m "Good Morning" -m "Good Night"
The last argument is the path it will scan files, by default it scans the current directory.
# Will look for every video inside the "video" folder
quoteclipper -m Hello "./videos"
You can change the output file name and location with the --output
or -o
parameter.
quoteclipper -m Hello -o "~/Desktop/Greetings.mp4"
You can also export individual clips with --export-clips
or -e
.
For changing the default file name and location see --export-clips-dir
and --export-clips-template
in the Help
quoteclipper -m Hello --export-clips
When using --export-clips
or -e
you can change the default naming patter using --export-clips-template
or -et
--export-clips-template "Clip {n} - {quote} from ({basename}).mp4"
Variables:
n
- number (keep things in sequence and avoid overriding clips)index
- original subtitle indexbasename
- name of the original file without extensionquote
- the quote textstart
- original start timestampend
- original end timestampduration
- duration of the clipIf you need to add extra time before and after each clip, you can offset the start and end cuts with the --offset
or -t
.
# starting 1.5s earlier and 1.5 after (3s longer)
quoteclipper -m Hello --offset -1.5 1.5
For a more advanced matching, you can use power of python regular expressions by enabling the --regex
or -re
flag.
Regular expressions need to be delimited by -m "/re/flags"
Regular expressions are case sensitive by default, and the --case-sensitive
or -c
flag has no effect when this mode is enabled.
To make a regex insensitive add the i
flag like /re/i
to each regex.
Due to the nature of POSIX commands, you need to use quotes around the regex if it contains spaces, and in some cases you also need to escape extra characters like ! needs to be scaped as "!".
quoteclipper -re -m "/foo/i"
quoteclipper -re -m "/foo/i" -m "/bar/i"
quoteclipper -re -m "/Call 555.\d+/i"
quoteclipper -re -m "/Car?s|sandwich(es)?/i"
quoteclipper -re -m "/(Ya?|You)'? ?Know\!/i"
Clone this repository and run
pip3 install .