Pixeltable
Pixeltable is an open-source Python library for AI apps on video, images, audio, and documents. Tables hold references and computed columns, so inserting a row runs transcription, model calls, and embeddings, indexing and serving in app.py.
Visit pixeltable/pixeltableOverview
Pixeltable is an open-source Python library for building AI applications that work with video, images, audio, and documents. It organizes file references, computed work, indexes, and HTTP routes around tables, with the backend contained in one Python file, app.py.
Key Features
- Tables can hold references to files next to ordinary columns; inserted paths or URLs stay in place, while uploaded or generated files go to a media store on local disk or in your own bucket.
- Computed columns can sample frames, transcribe audio, call a model, or embed results; inserting a row runs the dependent work, stores outputs, and indexes them.
- Embedding indexes are declared in a table's __indexes__, removing the need for a separate embed-and-upsert job.
- Dependency tracking determines what to run and what to rerun after changes, so new uploads cost new work and prompt changes rerun only affected summaries.
- A FastAPIRouter can expose insert and search routes, with the whole backend from tables to HTTP routes in one Python file, app.py.
- The same app.py can run on Pixeltable Cloud, where pxt db update uploads the project to a hosted database and commands use a pxt:// URI.
Use Cases
- RAG and live APIs: documents are split into chunks, indexed for embeddings, and exposed through a search route without a re-embed job when documents are added or removed.
- Agents: tool calls are columns, so every call becomes a row that can be queried later.
- Media pipelines: frames and transcripts are rows, ready to export for training.
- Video search: uploaded videos are transcribed and summarized, and users can search the summaries.
Getting Started
- Install with pip install -U 'pixeltable[serve]' on Python 3.11 or newer.
- Run pxt init before pxt schema update.
- Run pxt schema update app.py my_app to create the table and its index.
- Run pxt service update app.py my_app to start the service.
- For Pixeltable Cloud, use pxt login and then the same commands with a pxt:// URI in place of my_app.
Deployment & Requirements
- Python 3.11 or newer.
- Install the serve extra with pip install -U 'pixeltable[serve]'.
- pxt init is a prerequisite for pxt schema update.
- Media can be stored on local disk or in your own bucket.
- Pixeltable Cloud: pxt db update uploads the project to a hosted database, and the same two commands take its pxt:// URI in place of my_app.
Before You Adopt
- License: Apache-2.0. Review its terms before using, modifying, or distributing the project.
- Pixeltable is not appropriate for users who do not want a schema.
- Pixeltable is not a no-code builder; it requires Python and acts as the data layer under the app.
- Pixeltable does not choose models or judge answer quality, and users still face large video files and model API failures.
- The project advises keeping an existing stack when it works and the integration glue is not costly.