# Changelog of Yahoo Video Scraper (`searchapi/yahoo-videos-scraper`) Actor

- **URL**: https://apify.com/searchapi/yahoo-videos-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/searchapi/yahoo-videos-scraper.md

## Changelog

All notable changes to the Yahoo Video Scraper are documented here.

### \[3.0.1] - 2026-08-29

#### Fixed

- Rotate to a new stable Apify Proxy session only after a transport-level failure, so a broken proxy endpoint is not retried repeatedly.
- Surface the underlying non-sensitive transport error code in logs for actionable cloud diagnostics.

### \[3.0.0] - 2026-08-29

#### Added

- Validated server-rendered mobile HTML extraction with real 30-card pagination.
- Stable SHA-256 IDs, global URL deduplication, and recursive empty-value omission.
- Single-query, deduplicated batch, fair interleaving, single-item, and multi-page modes.
- Source-backed duration and platform filters plus duration sorting.
- Real platform video IDs and canonical YouTube/Vimeo embed URLs.
- Thumbnail dimensions/aspect ratio, full Yahoo descriptions, regional hosts, provenance, and 50-field schema.
- Stable per-query proxy sessions, coherent mobile Safari headers, bounded retries, and fail-closed challenge handling.
- Six tests for input validation, pagination/regions, current card extraction, no-results/block handling, normalization, and filter boundaries.

#### Changed

- Replaced Firefox rendering and raw diagnostic output with concurrent browser-free HTML requests. Representative 50-record local runs now finish in about nine seconds.
- Updated to exact Apify SDK 3.7.2, Crawlee 3.18.1, Cheerio 1.1.2, Node.js 22, and a browser-free image.
- Regional AU/IN input now uses the working global Yahoo host with locale context rather than empty regional layouts.
- Valid no-results searches complete with an empty dataset; invalid input and target failures exit nonzero.

#### Removed

- Raw card HTML and full search/result URL logging.
- Hard-coded webdriver, platform, viewport, and cross-engine Firefox/mobile-Safari spoofing.
- Automatic cloud proxy substitution when direct access was requested.
- Unsupported channel, view-count, upload-date, engagement, tag, category, quality, and resolution claims.
- Ignored `age`/`videodur` URL parameters. Duration is now enforced from source metadata; unverifiable date filters are rejected.

### \[2.0.0] - 2026-06-12

#### Added

- **Schema expanded** from 14 to **39 fields**.
- **New fields**: `type`, `resultType`, `titleHtml`, `link`, `embedUrl`, `host`, `favicon`, `channelUrl`, `description`, `durationSeconds`, `viewsRaw`, `date`, `publishedAtRaw`, `relativeTime`, `thumbnailWidth`, `thumbnailHeight`, `width`, `height`, `tags`, `category`, `searchUrl`, `searchMetadata`, `query`, `country`.
- **New view**: `fullDetails` — all 39 fields.
- **INPUT.json** added at project root for local validation.

### \[1.0.0] - 2025-05-20

#### Added

- Initial production release of the Yahoo Video Scraper.
- `PlaywrightCrawler`-based architecture using Chrome.
- Modular project structure.
- `validate-datasets.js` for local dataset output validation.
- `Dockerfile` using `apify/actor-node-playwright-chrome` image.
- `README.md` with full Apify usage guide.
