BWorking • In progress • TypeScript
MediaHarvester
MediaHarvester: paste a URL, crawl the site, pull out every image and video, then browse, filter and download them singly or as a zip. Cheerio for static pages with a Playwright fallback when the markup needs JavaScript.
Private Client Repository
This software was engineered for a private business or client organization. If you are a hiring manager, technical lead, or potential client wishing to inspect the architecture and code quality, I would be pleased to grant you access or provide a code walkthrough. Please contact me at mohammadshuvo2525@gmail.com.
The Engineering Challenge
Half the web renders its media with JavaScript, so parsing the HTML a server returns finds nothing. Rendering every page in a real browser instead is slow enough to be useless.
The Solution & Architecture
Static HTML is parsed with Cheerio first, and only pages that come back without media fall through to a Playwright Chromium render. A p-queue caps concurrency, archiver streams the zip rather than buffering it, and jobs live in an in-memory Map — no database, because nothing needs to outlive the download.
| Tier | B — Working. Real applications, narrower in scope. |
|---|---|
| Status | In progress |
| Category | React & Next.js |
| Technology Stack | Next.js 14, React, Tailwind CSS, TypeScript, Playwright, Cheerio |
| Languages | TypeScript 97% |
| Lines of code | 2,580 (excluding libraries & vendor files) |
| Commits | 1 |
| Last updated | 2026-07-30 |
| Visibility | Private • Access upon request |
| Repository | mediascrape |
Have a project in mind or interested in discussing this system? Let's talk →