{"id":37769173,"url":"https://github.com/apreshill/pxt-primetime","last_synced_at":"2026-01-16T14:50:44.232Z","repository":{"id":328097369,"uuid":"1114072353","full_name":"apreshill/pxt-primetime","owner":"apreshill","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-16T22:06:16.000Z","size":61418,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-19T15:45:49.445Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apreshill.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-10T21:29:09.000Z","updated_at":"2025-12-17T04:05:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/apreshill/pxt-primetime","commit_stats":null,"previous_names":["apreshill/pxt-primetime"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/apreshill/pxt-primetime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apreshill%2Fpxt-primetime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apreshill%2Fpxt-primetime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apreshill%2Fpxt-primetime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apreshill%2Fpxt-primetime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apreshill","download_url":"https://codeload.github.com/apreshill/pxt-primetime/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apreshill%2Fpxt-primetime/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-16T14:50:44.151Z","updated_at":"2026-01-16T14:50:44.223Z","avatar_url":"https://github.com/apreshill.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pxt-primetime\n\nBuild multimodal AI applications with Pixeltable. Learn data-centric workflows, semantic search, and content generation using video as an example.\n\n## Prerequisites\n\n- Python 3.10+\n- [uv](https://docs.astral.sh/uv/) - Fast Python package installer (`pip install uv` or `brew install uv`)\n- [ffmpeg](https://ffmpeg.org/) - Required for video processing (`brew install ffmpeg` on macOS, `apt install ffmpeg` on Linux)\n\n## Setup\n\n1. Clone this repo and navigate to it:\n   ```bash\n   git clone \u003crepo-url\u003e\n   cd pxt-primetime\n   ```\n\n2. Create a virtual environment and install all dependencies:\n   ```bash\n   uv sync\n   ```\n   This will automatically install all dependencies listed above.\n\n   **If you already have Pixeltable installed**, `uv sync` will upgrade it to the required version (\u003e=0.5.6) along with all other dependencies.\n\n3. Configure API keys (optional, but recommended):\n\n   - **Gemini API Key** (recommended): Required for video generation in `03_generate-from-data.ipynb`. You can use the [free tier](https://ai.google.dev/gemini-api/docs/pricing). Set as environment variable:\n     ```bash\n     export GEMINI_API_KEY='your-api-key-here'\n     ```\n     Or the notebook will prompt you to enter it when you run it.\n   - **OpenAI API Key** (optional): For faster transcription using OpenAI's Whisper API instead of the local model. Set as environment variable:\n     ```bash\n     export OPENAI_API_KEY='your-api-key-here'\n     ```\n   **Security Note**: Keep your keys secure by using environment variables, never commit them to git, and delete unused keys.\n\n4. Open VS Code/Cursor in this project folder (or reload if already open)\n\n## Dependencies\n\nAll dependencies are automatically installed when you run `uv sync` (see Setup section above). This project uses **Pixeltable v0.5.6**. The following is a reference of what gets installed - you don't need to install these manually:\n\n### Core Dependencies\n\n* **pixeltable** (\u003e=0.5.6): Primary library for this project. Provides table, view, and computed column functionality.\n\n### Video Processing\n\n* **opencv-python**: Required for video processing operations\n* **scenedetect**: Required for scene boundary detection in videos\n* **pytube**: For downloading videos from YouTube (if needed)\n\n### Text Processing \u0026 Embeddings\n\n* **sentence-transformers** (\u003e=2.0.0): Required for Hugging Face sentence embeddings\n  * Used in: `02_iterating-with-data.ipynb` - creating embedding indexes on transcript text\n\n### Audio Processing \u0026 Transcription\n\n* **openai-whisper**: Required for local Whisper transcription (`pxt.functions.whisper.transcribe()`)\n  * Used in: `02_iterating-with-data.ipynb` - transcribing audio chunks\n* **openai** (optional): For OpenAI Whisper API transcription (`pxt.functions.openai.transcriptions()`)\n  * Used in: `02_iterating-with-data.ipynb` - faster transcription alternative (requires API key)\n  * Note: Install separately with `uv add openai` if you want to use the OpenAI API instead of local Whisper\n\n### Video Generation\n\n* **google-genai**: Required for Gemini video generation (`pxt.functions.gemini.generate_videos()`)\n  * Used in: `03_generate-from-data.ipynb` - generating intro/outro videos using Gemini's Veo model\n  * Requires: Gemini API key (free tier available)\n\n### Development\n\n* **ipykernel**: For running Jupyter notebooks\n* **jupyter**: For notebook interface\n\n## Notebooks\n\nThis project contains three progressive notebooks that build on each other. **Run them in order** (Act 1 → Act 2 → Act 3) as each notebook depends on tables and data created in previous notebooks:\n\n- `01_data-centric-workflows.ipynb` - Act 1: Data-centric Workflows\n- `02_iterating-with-data.ipynb` - Act 2: Iterating with Data\n- `03_generate-from-data.ipynb` - Act 3: Generate New Content from Data\n\n## Running Notebooks\n\n1. Open a notebook\n2. Click the kernel selector in the top-right corner\n3. Select the kernel showing `.venv` with the full path to this project's `.venv/bin/python`\n   - Look for the path that includes `/pxt-primetime/.venv/bin/python`\n   - This confirms you're using this project's environment, not another venv or system Python\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapreshill%2Fpxt-primetime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapreshill%2Fpxt-primetime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapreshill%2Fpxt-primetime/lists"}