Skip to content

alexandfinn/yc-videos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

YC Batch Video Assembler

This script builds a single compilation video from all Y Combinator companies' launch videos for a given batch (for example, Fall 2025 at https://www.ycombinator.com/companies?batch=Fall%202025).

For each company in the batch, it:

  • Scrapes the YC companies page to find the company entry and logo.
  • Follows the company profile page to discover the YC launch post.
  • Extracts the first YouTube video URL from the launch post.
  • Downloads the video in the best available quality using yt-dlp.
  • Creates a short title card video showing the company name and logo.
  • Normalizes all clips and concatenates them into a single video via ffmpeg.
  • Emits a timestamps.txt file for easy YouTube chapter timestamps.

Dependencies

  • Python 3.9+ recommended.
  • ffmpeg and ffprobe installed and available on your PATH.
  • Python packages (see requirements.txt):
    • requests
    • beautifulsoup4
    • yt-dlp
    • Pillow

On macOS with Homebrew:

brew install ffmpeg
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Usage

From the project directory:

  1. Download all launch videos for a batch
python yc_video_assembler.py download \
  --batch "Fall 2025" \
  --workdir fall_2025_work \
  --max-companies 5   # optional, for testing

This discovers launch posts, extracts the first YouTube video per company, downloads each video into fall_2025_work/downloads/, and writes metadata (including company tagline + YC tags) to fall_2025_work/companies.json.

  1. Assemble the compilation from downloaded assets
python yc_video_assembler.py assemble \
  --workdir fall_2025_work \
  --output fall_2025_compilation.mp4

This step creates title cards, normalizes every clip, concatenates the sequence via ffmpeg, and emits:

  • Final video at --output.
  • segments.json (start/end metadata) and timestamps.txt (ready for YouTube chapters) inside the workdir.
  • Refined title cards with the startup name, tagline, optional logo, and YC tags information stored in companies.json.

Both commands accept --max-companies to limit the number of startups processed, which is handy for quick dry runs.

Notes

  • This script depends on the current HTML structure of YC's companies and launch pages. If YC changes the layout, you may need to adjust the scraping logic.
  • Be mindful of YouTube's Terms of Service and the rights implications of downloading and re-uploading videos.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages