dailies
Triage for AI-generated video takes. Batch-generate overnight, wake up to a ranked shortlist: the mechanical funnel kills the dead takes (decode errors, black, frozen) with timestamped reasons and ranks the survivors for review. It never claims a take is good; it claims most of them are definitely dead.
Built so far: stage 1 of the funnel (mechanical, CPU only), stage 2 (VLM screening), and the morning report. Results live in per-clip sidecar files; the format is specified in SPEC.md and is the contract for companion tooling (take lineage and recipe capture are a separate, upcoming tool).
Requirements
Python 3.9+, ffmpeg and ffprobe on PATH. No Python dependencies; blake3 is picked up if installed, otherwise hashes are sha256:-prefixed.
Install
pip install git+https://github.com/zhang-liz/dailies
Or run straight from a checkout with python3 -m dailies; there is nothing to build.
Use
dailies review ./takes # or globs, or single files
dailies review shot-07/ --shot shot-07 --json
dailies report ./takes -o report.html
Stage 2 screens the survivors with a vision model. Point --vlm at any OpenAI-compatible endpoint (llama.cpp, vLLM, or hosted; key read from DAILIES_VLM_KEY):
dailies review ./takes --vlm http://localhost:8000/v1 --vlm-model qwen3-vl
Frames are sampled at the mechanical stage's difference peaks, not uniformly: artifact frames are frame-difference outliers. Rules come from a rubric (--rubric film.json, or .yaml with PyYAML installed); each rule is a prompt plus an optional fail_at severity, so project-specific checks (a prop's continuity, a wardrobe color, no watermarks) need zero code. Defects land in the sidecar with rule, timestamp, severity, and note; a rule kills a take only past its fail_at.
The report is one static HTML file: survivors ranked first per shot, hover a clip to scrub, defect spans marked on a timeline, kill reasons one click away.
Each clip gets a <clip>.take.json sidecar: content-hash take id, probe info, black/freeze spans, scene cuts, flicker score, candidate frames for the VLM stage, verdict (kill or review), rank within the shot. Reviews are cached by content hash; --force re-runs. Sidecar blocks owned by other tools (slate's recipe) are preserved.
Tests
python3 -m unittest discover tests
Tests generate synthetic clips with ffmpeg and assert the funnel's verdicts.
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 video_dailies-0.1.0.tar.gz.
File metadata
- Download URL: video_dailies-0.1.0.tar.gz
- Upload date:
- Size: 19.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fba2c18d1585ebd6c74e3cb65319e4d0b83e6f9c3a40ba880cd5d73a6abef1ac
|
|
| MD5 |
f5a4399ab7d030c6741cce81a033b9f5
|
|
| BLAKE2b-256 |
594bed8c3175032de7ba2ceccbc7e5a88fa7a504c02097988ebc4050ed253a28
|
Provenance
The following attestation bundles were made for video_dailies-0.1.0.tar.gz:
Publisher:
publish.yml on zhang-liz/dailies
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
video_dailies-0.1.0.tar.gz -
Subject digest:
fba2c18d1585ebd6c74e3cb65319e4d0b83e6f9c3a40ba880cd5d73a6abef1ac - Sigstore transparency entry: 2379803133
- Sigstore integration time:
-
Permalink:
zhang-liz/dailies@dd763b7989c3974bcb24cb30d9bf838be28ad37c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/zhang-liz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dd763b7989c3974bcb24cb30d9bf838be28ad37c -
Trigger Event:
release
-
Statement type:
File details
Details for the file video_dailies-0.1.0-py3-none-any.whl.
File metadata
- Download URL: video_dailies-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3c509b53e01b9d1dc7e8a58b4d2965e68cb4856e98c588ba3abd90d60d5a266
|
|
| MD5 |
2cff037eb01339258281cde64bbf384b
|
|
| BLAKE2b-256 |
880be95525a7428f87be7be7e7125ede7f387f524125d1d593d6b9a9dc01ca26
|
Provenance
The following attestation bundles were made for video_dailies-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on zhang-liz/dailies
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
video_dailies-0.1.0-py3-none-any.whl -
Subject digest:
c3c509b53e01b9d1dc7e8a58b4d2965e68cb4856e98c588ba3abd90d60d5a266 - Sigstore transparency entry: 2379803189
- Sigstore integration time:
-
Permalink:
zhang-liz/dailies@dd763b7989c3974bcb24cb30d9bf838be28ad37c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/zhang-liz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dd763b7989c3974bcb24cb30d9bf838be28ad37c -
Trigger Event:
release
-
Statement type: