All projects
yt-player.sh

YT Player

Shipped

Custom TypeScript YouTube player — branded UI, CDN-friendly, upload via YouTube API and play by URL.

Library author

yt-player-ts.vercel.app
YT Player screenshot

yt-player_case_study.sh

~/projects cat yt-player_case_study.txt

// Problem

The YouTube IFrame Player API is low-level — apps need branded, ad-free, CDN-friendly playback and an optional upload-to-play workflow.

// What I built

I built YT Player as a hobby open-source TypeScript wrapper with a highly customized control UI (progress, fullscreen pinch-zoom), CDN-friendly bundle, and YouTube Data API upload flow: upload a video (public or unlisted), get the URL/ID, paste into YT Player and embed in any app. Built to power Course App's video layer without exposing YouTube branding to end users.

// Architecture

TypeScript library wrapping YouTube IFrame Player API with highly customized controls. Vite for CDN-friendly bundling. YouTube Data API integration for upload workflow. Custom UI hides YouTube chrome while serving video via iframe.

// Stack

TypeScript Vite YouTube IFrame API YouTube Data API Tailwind

// Outcomes

  • ▸ Open-source TypeScript library with live demo at yt-player-ts.vercel.app
  • ▸ YouTube Data API upload flow — upload, get URL, play in custom player
  • ▸ Powers Course App video playback without storage-bucket costs

// Related projects