The batch pattern: submit all jobs with fal_client.submit(), do other work, then collect with fal_client.result(), instead of one blocking subscribe per job. And treat every returned video URL as expiring: fetch the bytes into your own storage right away, because a URL that worked yesterday 404s tomorrow and the generation cannot be re-downloaded. One more scope note from the same source: none of these video APIs generate audio natively, so plan a separate TTS or music step and merge with ffmpeg rather than prompting the video model for sound.

Context: Web source (su6i/agent-constitution AI video generation skill, notes and gotchas): Pika via fal.ai, plus provider-wide rules. fal_client.subscribe() blocks until the job is done; for non-blocking batch work use fal_client.submit() plus fal_client.result(). Video download URLs are time-limited, typically 24 to 72 hours, so download immediately after generation.