Skip to main content

overc-clips

Cut analysis clips out of a YouTube video or a local file, through a web page, with no command line required.

Built for volleyball coaches handing clips to video-review sites, but there is nothing sport-specific in it. Point it at a video, mark the spans you want, and it produces the clips.

It runs two ways from one codebase:

  • On your own machine. It starts a small web server and prints an address. Open that in a browser on the same machine, or on your phone if you are on the same wifi. The video processing happens on your computer; the phone is only the remote control.
  • Hosted, like any other internal web app.

What you need

Python 3.10 or newer. That is all. ffmpeg and yt-dlp come with it — the install pulls a static ffmpeg build, so there is nothing to install separately and nothing to put on your PATH.

Works on macOS, Linux and Windows.

Install

pip install overc-clips

On current macOS and most Linux distributions that will refuse with a message about an "externally managed environment" — that is the operating system protecting its own Python, not an error in this package. Use a virtualenv:

python3 -m venv ~/.local/share/overc-clips/venv
~/.local/share/overc-clips/venv/bin/pip install overc-clips
~/.local/share/overc-clips/venv/bin/overc-clips serve

or install it with pipx, which does the same thing for you:

pipx install overc-clips

Use it

overc-clips serve              # start the web UI, print the address to visit
overc-clips doctor             # what it found on this machine, and what is missing

serve prints a local address and, if it can, a second one for other devices on your network. Everything else happens in the browser: paste a video link, scrub to the start and end of each clip, and make them.

Useful flags:

overc-clips serve --outdir ~/Movies/clips   # where clips are written
overc-clips serve --port 8080               # default
overc-clips serve --token secret            # require a token, for a shared network

Settings you would otherwise need a flag for — the output folder, how long clips are kept, the maximum clip length — are in the web UI itself, so someone who was handed a desktop shortcut can still change them.

Clips

Clips are named after the source video and their timestamps, so two cuts from one match never collide. Where each clip came from is written into the file as mp4 metadata, which survives the file being moved or shared, and the built-in library can group, search and file them.

Clips are deleted after 14 days by default, which the UI tells you on startup and lets you change or switch off.

Keeping it working

YouTube changes things regularly and an out-of-date yt-dlp is the usual cause of a download that suddenly fails. Updating it is independent of this package:

pip install -U yt-dlp        # in whichever environment you installed into

overc-clips doctor reports the version it is using and where it came from.

Licence

GNU Affero General Public License, version 3. See LICENSE.

If you change it and pass it on, the changes come with it. The Affero part extends that to running a modified copy as a service for other people over a network — which for a web application is the case that matters. Improvements sent back are welcome.

One component is somebody else's and is included under its own terms: overc_clips/_vendor/segno_encoder is the encoder half of segno 1.6.6 by Lars Heuer, copied in unmodified and used under the BSD 3-Clause licence in overc_clips/_vendor/segno_encoder/LICENSE. It draws the QR code that lets a phone reach this without anyone typing an address.

This is early software and it changes often. Treat it as alpha: things move, and nothing here is supported.

Metadata

Release files for overc-clips 0.6.69

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

Source distribution (sdist)

Source distribution for overc-clips 0.6.69
File Size Uploaded
overc_clips-0.6.69.tar.gz 370.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for overc-clips 0.6.69
File Interpreter ABI Platform
overc_clips-0.6.69-py3-none-any.whl Python 3 none any Details

Total release size: 749.4 kB

Release files / overc_clips-0.6.69.tar.gz

Download URL overc_clips-0.6.69.tar.gz
Size 370.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0c6cb4110231810a1b3972a496de0711c5087cecb15cd77c0a08e87fc122d85a
BLAKE2b-256 checksum
How to use checksums
233ef42db90f0e9170db5f5e9834152a60a39c3fbe47f26a66df1f5a2eb0c650
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / overc_clips-0.6.69-py3-none-any.whl

Download URL overc_clips-0.6.69-py3-none-any.whl
Size 379.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c2d8b1dbdc2cc5053a5faa10fe0ed58dcae631a082f181eab6d5d61fd76caf67
BLAKE2b-256 checksum
How to use checksums
189f74f96684664878942624e366f96e1dd2ff3eca3ca2d6320bb9782d844ae8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release history Release notifications | RSS feed

This release

0.6.69 This release

2 release files

0.6.42

2 release files

0.6.41

2 release files

0.6.39

2 release files

0.6.25

2 release files

0.6.24

2 release files

0.6.23

2 release files

0.6.19

2 release files

0.6.18

2 release files

0.6.17

2 release files

0.6.15

2 release files

0.6.14

2 release files

0.6.13

2 release files

0.6.10

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.4.24

2 release files

0.4.23

2 release files

0.4.21

2 release files

0.4.19

2 release files

0.4.4

2 release files

0.4.2

2 release files

0.3.39

2 release files

0.3.35

2 release files

0.3.34

2 release files

0.3.32

2 release files

0.3.29

2 release files

0.3.28

2 release files

0.3.27

2 release files

0.3.26

2 release files

0.3.25

2 release files

0.3.24

2 release files

0.3.23

2 release files

0.3.22

2 release files

0.3.21

2 release files

0.3.20

2 release files

0.3.19

2 release files

0.3.14

2 release files

0.3.11

2 release files

0.3.10

2 release files

0.3.2

2 release files

0.3.0

2 release files

0.2.20

2 release files

0.2.19

2 release files

0.2.18

2 release files

0.2.17

2 release files

0.2.16

2 release files

0.2.15

2 release files

0.2.13

2 release files

0.2.11

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

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