Inspiration

What it does

### Inspiration Short dramas are everywhere and nowhere. Every platform has its own app, its own search, its own idea of what a "title" is, and the actual episodes usually end up as links buried in a cloud drive. I kept doing the same loop — search one app, screenshot a title, hunt the episodes somewhere else — so I built the thing I wanted: one search box that finds the drama, remembers what I picked, and takes me straight to the video.

### What it does It crawls multiple drama sources and normalizes them into a single catalog: title, poster, synopsis, episode count, status and source links become comparable records instead of five different page layouts. From there you can search in one place, favorite titles to a personal shelf, resume where you left off, and jump to the actual episodes through a cloud-drive hand-off instead of copying links by hand. Synopses are also translated to English, so a title found in one language is searchable and readable in another.

### How I built it I used Kiro's spec-driven workflow: first a spec that described the data model (titles, episodes, sources, drive links), the crawler contract, and the search behavior; then implementation task by task, reviewing diffs as Kiro produced them. The pipeline is [crawler → normalizer/dedupe → index → search API] with [your stack, e.g. Next.js + Postgres/SQLite + a full-text index], the crawler keeps per-source adapters so adding a site is a config change, not a rewrite, and the front end is a single search view plus a favorites shelf. Cloud-drive links are stored as configurable URL patterns resolved per title, so the jump target is data, not hardcoded markup.

### Challenges we ran into Deduplication was the hard part: the same drama has different titles in different sources, plus seasons, alternate spellings and translated names, so matching needed normalization and fuzzy scoring rather than exact keys. Crawlers are also brittle — layouts shift and one failing source can stall a whole run — so each adapter is isolated with its own timeout and error budget. Cloud-drive jumps needed defensive handling: dead links, permission prompts, and mobile redirects all had to degrade gracefully instead of dropping the user on an error page. And translation had to stay cheap, so only short fields (title, synopsis) go through it, with cached results.

### Accomplishments that we're proud of One search box that returns a deduplicated record set from several sources, a favorites shelf that survives reloads, and a working "search once, land on the video" path end to end — plus cross-language search that makes non-English dramas findable in English.

### What we learned Spec-first beats vibe-coding when the problem is mostly data modeling: getting the record shape and dedupe rules right in the spec saved far more time than iterating on UI. I also learned to design crawlers as disposable adapters and to treat every external link as hostile input.

### What's next More source adapters, watch-progress sync across devices, a recommendation pass over the favorites shelf, and a proper episode-level index so search can land on a specific episode, not just a title.

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for drama fun

Built With

Share this project:

Updates

Submission history