Skip to main content
Insert media. Iterators explode it into rows. Computed columns run on the new rows. Export when you are ready to train. Create the tables with pxt schema update app.py my_app, then open them with t = pxt.get_table('my_app.videos'). Cookbooks on this topic use pxt.create_table() so you can run cells without a project. An app puts the same columns on a TableModel in app.py and creates the tables with pxt schema update.
Add Whisper, YOLOX, and other models from the cookbooks as computed columns on these tables. When the rows look ready for training, export with to_pytorch_dataset(). Skip pxt service update on this path. Self-hosting. A video search app with endpoints: uvx pixeltable-new myapp --video, then pass videointel to pxt schema update. Live search over chunks: RAG and live APIs.

Extract video frames

Frames as rows from a pxt.Video column.

Transcribe audio

Transcripts as computed columns.

Export to PyTorch

to_pytorch_dataset() when the rows are ready.
Last modified on September 3, 2026