Same /search contract as youtube-service/, backed by the youtube-search-api npm package instead of the official Data API.
GET /search?q=eraser&maxResults=5
q required, min 3 characters.
maxResults optional, default 12, capped at 50.
No year/country filters here - that's specific to the official-API version.
Set via the EXCLUDE_AUTHOR env var (comma-separated) - matching channels are dropped from every search result entirely.
Set via the MAX_DURATION_MINUTES env var - currently
20 minutes.
Videos longer than this are dropped from every search result entirely; an unparseable
duration (missing, live, etc) is kept rather than assumed too long.
description is always empty - not exposed by search-result scraping.