annotations cannot be manually saved, only auto-saved periodically

im trying to run a minimal video/audio labelling example --

python3 -m prodigy audio.manual drifting_data ./videos --loader video --label LABEL1,LABEL2

with a few mp4 videoclips in the folder.

The gui starts no problem, i can label stuff, and I see output from db-out if I wait for it to periodically save, but if i start a new dataset and hit the "save" button after making 1 or 2 labels, the floppy-disk icon turns into a checkmark, but nothing is saved under db-out. No errors in javascript console or in server terminal.

I tried some of the suggestions from this thread but no luck.

any clue what the problem might be? or is it possible to have it save after every "accept" or reduce the save period?

python 3.6.9
prodigy 1.10.3
spacy 2.3.2
thinc 7.4.1

Linux 5.3.0-1028-aws x86_64


Hi! How large are the video files you're annotating? And if you hit save manually, wait for a couple of minutes and keep an eye on the JavaScript console and the API requests it

My suspicion is that it could be related to the file size and the data being sent back to the server. So saving manually might just take very long. (There couldn't be any interaction with spaCy or Thinc, since those libraries wouldn't be used in the manual audio/video workflows).

If your files are large, an easy solution would be to use the video-server loader, which will serve your video files via the local web server so the data itself doesn't have to be sent across.

thanks for the quick reply [and apologies for my terribly delayed reply].

i think you are correct about the large video size being the issue. there are 2 short videos, each about 30mb.

using --loader video-server makes the app run much much faster but there seems to be a different issue. if i add a few annotations and click the accept button, the server immediately crashes (no error in the terminal, just seems to terminate the program). the js console shows:

bundle.js:1 POST http://[ip-address]:1339/get_session_questions net::ERR_CONNECTION_RESET

however if i restart the server i can see my second video, and i am able to save annotations no problem. now using prodigy version 1.10.4.

note that the only change made here is the video-loader. previously the server never crashed in this way.

any clues?

thanks again!

Ah, that's strange – this looks more like serving the videos as static files somehow makes the server crash :thinking: The video server will mount the files as static files using the same FastAPI back-end as Prodigy, but if that dies, everything dies. Maybe you could enable logging (PRODIGY_LOGGING=basic) and see if there's anything in the logs that looks suspicious?

In the meantime, the easiest workaround would be to just host the files yourself, like in an S3 bucket, and then load in examples like {"video": "https://..."}.