Repository navigation
Releases: Blueturboguy07/publikclip
Release list
publikclip v0.2.6
Your own Gemini key now works within Google's free-tier limits.
A free Gemini key allows 5 requests a minute and 20 a day on Google's main flash model, and 10 a minute and 500 a day on its lite models. publikclip's JUDGE stage used to fire about 60 calls per video with no pacing, and it read Google's standard "check your plan and billing details" quota message as a billing problem, so the job stopped on the first rate limit and every restart used up more of the day's 20 requests. The lite models were never tried.
With your own key, publikclip now:
- rates 5 moments per call instead of one (about half the calls per video);
- reads the quota Google names: a per-minute limit is waited out and the model is paced to it for the rest of the run (you see "waiting 16 s" under JUDGE); a per-day limit moves to the next model at once, which has its own quota;
- keeps answers already scored, on any model, so a resumed job never re-sends them;
- if every model is out for the day, says so in one line with the reset time (midnight Pacific) and asks you to resume then.
publik API mode is unchanged.
Windows: the Review screen no longer shows scored cards with no video.
On Windows, a job whose scores held a character outside the ANSI code page (an em-dash in a summary, for example) could not be read by the app: the Review bay showed 12 score cards, no video, and "scored by —". All job files are written as UTF-8 now, jobs already on disk open again, and caption files are UTF-8 too (accented words and emoji in captions render correctly on Windows).
macOS: Developer ID signed and notarized (Apple Silicon). Windows: unsigned installer (SmartScreen will ask once).
publikclip v0.2.5
TRANSCRIBE no longer fails on machines with little free memory.
On an 8 GB Windows laptop the job died at "Loading speech model" with mkl_malloc: failed to allocate memory on every run. The large speech model is a 1.6 GB file and needs about 3.5 GB of free memory to load.
publikclip now reads how much memory is free before it loads the speech model. If the large model does not fit, it uses a smaller one (small, then base) and says so under TRANSCRIBE. If a load fails anyway, it moves down one step and tries again. The smaller models are a little less exact on word timing and rare words; clip picking still works. The job's checkpoint records which model ran. If no model fits, the error says so in one line and asks you to close other apps and resume the job.
Also in this release (first shipped as the Windows-only 0.2.4 prerelease): your own Gemini key no longer dies at JUDGE when Google is busy.
A brand-new free Gemini key could get 503 Service Unavailable from Google's main flash model on every run for days. With your own key, publikclip now waits between tries and, when a model keeps refusing (overloaded, out of quota, or retired for new keys), moves on to Google's lite models, which have their own capacity. The switch shows under JUDGE and the clip's "scored by" line names the model that scored. If every model refuses, the error says what each one answered and how to switch to publik API.
publik API mode is unchanged.
macOS: Developer ID signed and notarized (Apple Silicon). Windows: unsigned installer (SmartScreen will ask once).
publikclip v0.2.4
Prerelease: Windows installer now; the macOS build follows as soon as Apple's notary service accepts submissions again (a Developer Program agreement needs accepting). Mac users: stay on v0.2.3 until this line disappears.
Your own Gemini key no longer dies at JUDGE when Google is busy.
A brand-new free Gemini key could get 503 Service Unavailable from Google's main flash model on every run for days, and the job failed at "Scoring moment 1/35" each time with that raw server error as the whole message. The app retried the same model three times inside one second and then gave up.
With your own key, publikclip now waits between tries and, when a model keeps refusing (overloaded, out of quota, or retired for new keys), moves on to Google's lite models, which have their own capacity. The switch shows under JUDGE, stays for the rest of the run, and the clip's "scored by" line names the model that actually scored. If every model refuses, the error says what each one answered and how to switch to publik API.
publik API mode is unchanged.
macOS: Developer ID signed and notarized (Apple Silicon). Windows: unsigned installer (SmartScreen will ask once).
publikclip v0.2.3
What's Changed
- publik copy: link-once $0.05 starter, not $0.25 at mint by @Blueturboguy07 in #18
- require a linked publik account before a job can run by @Blueturboguy07 in #19
Full Changelog: v0.2.2...v0.2.3
publikclip 0.2.2
Three first-run fixes for a fresh install, on top of 0.2.1:
-
Transcription works in the installed app. Every real install failed right after ingest with
asr: FileNotFoundError(2, 'No such file or directory'). The app's speech step called a helper that runsffmpegfrom the system PATH, and an app launched from Finder has no ffmpeg on its PATH. The speech step now reads the audio the ingest step already produced, and falls back to the same ffmpeg the rest of the pipeline uses. Crash messages also name the missing file from now on. -
The Instagram Loop and the audio Library screens no longer crash before the first clip job. On a machine where no job had run yet, opening either screen failed with
ig tool produced no JSON: Traceback ... No module named 'httpx', because that library was only installed by the first job's one-time setup. The app now installs the small network library it needs on demand (seconds, not the multi-GB pipeline download) and reports a clear error instead of a traceback if it cannot. -
Carries 0.2.1's fix: the packaged app finds its bundled
uv, so the first job no longer fails withNo such file or directory: 'uv'.
macOS: Developer ID signed and notarized. Windows: unsigned installer (SmartScreen will ask once).
publikclip 0.2.1
Drag-and-drop / choose-file for local video sources, and a first-run fix: the packaged app now finds its bundled uv (was failing with No such file or directory: 'uv') and fetches ffmpeg before probing the source file, so a clean machine with no Homebrew ffmpeg no longer fails at ingest.
publikclip 0.2.0
publikclip 0.2.0 — scoring runs on publik API by default.
- First launch sets up publik API by itself. There is no key to paste.
- Your own Gemini key and a local Ollama model still work. Pick them in onboarding or Settings.
- The studio shows your balance. It tells you when to add credit, with one link.
- macOS: Developer ID signed and notarized dmg (Apple silicon).
- Windows: NSIS installer, x64, unsigned.
SHA-256
publikclip_0.2.0_aarch64.dmg 90273a4bd25fb217da3694d68964d71830962160cabb8377a55f4de3f1089c1a
publikclip_0.2.0_x64-setup.exe 763beb5987ddb34b531f32f8dd85cad1150784dc0810cff369465337cf675f12
publikclip v0.1.0
First release. Long video in, scored vertical clips out.
| Platform | File | Notes |
|---|---|---|
| macOS (Apple Silicon) | publikclip_0.1.0_aarch64.dmg |
Signed with Developer ID and notarized by Apple. Opens with no warning. |
| Windows | publikclip_0.1.0_x64-setup.exe |
NSIS installer, unsigned — SmartScreen will warn once. |
First launch downloads its engine
publikclip ships a small app and a uv binary, not a multi-gigabyte ML stack. The first time you run a job it downloads Python 3.12 plus torch/whisperx/opencv into ~/.publikclip (Windows: %USERPROFILE%\.publikclip). That is a one-time download of several GB and it needs a working internet connection. Every run after that is offline.
To remove it completely, delete that folder along with the app.
Why there was no download before this
The Windows installer had been built and tested on a clean runner on every push for months, then discarded as an expiring CI artifact — nothing ever published it. There was no macOS build job at all, so no dmg had ever been produced, even though the mac packaging path was fully written.
Building one surfaced a defect that would have made a signed dmg useless: uv creates its virtualenv in the directory it is pointed at, which in a packaged build is inside publikclip.app. The first launch would have written several GB into the signed bundle, invalidated its own signature, and Gatekeeper would then refuse to open an app that had worked minutes earlier. macOS App Translocation makes that bundle read-only anyway, so it would simply have failed. The virtualenv now lives in ~/.publikclip/env.
Verify the macOS build yourself
spctl --assess --type open --context context:primary-signature -vv publikclip_0.1.0_aarch64.dmg
xcrun stapler validate publikclip_0.1.0_aarch64.dmg
Both the dmg and the app inside it carry their own notarization ticket, so they validate with no network.