# Changelog of Yahoo News Scraper (`searchapi/yahoo-news-scraper`) Actor

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

## Changelog

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

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

#### Added

- Server-rendered HTTP extraction with validated status, content type, response size, final host, block state, and result structure.
- Correct decoding of Yahoo `/RU=` redirects into canonical publisher/Yahoo article URLs.
- Stable SHA-256 article IDs, global URL deduplication, and recursive omission of empty values.
- Single-query, deduplicated batch-query, fair interleaving, single-item, and bounded multi-page modes.
- Regional Yahoo hosts for US, UK, Canada, Australia, and India.
- Source-backed recency/custom-date filtering and newest sorting across fetched candidates.
- Publisher/via-property parsing, highlights, thumbnail metadata, favicons, age seconds, and 52-field output contract.
- Direct, Apify Proxy, and custom proxy support with stable per-query sessions.
- Six tests covering validation, regional URLs, redirect decoding, live-card structure, no-results/block handling, normalization, and date filters.

#### Changed

- Replaced per-page Firefox navigation with concurrent server-rendered HTML requests. A representative 50-record local run now completes 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 Actor image.
- Invalid runtime input and target failures now exit nonzero while valid no-results searches complete successfully with an empty dataset.
- Yahoo's obsolete `age` and `s=4` parameters are no longer presented as live website filters; equivalent behavior is enforced against Yahoo's displayed source timestamps.

#### Removed

- Fabricated false ad, paywall, breaking, and sponsorship flags.
- Fabricated zero comment, share, and related-article counts.
- Unsupported author, author URL, category, and full-summary claims.
- Automatic cloud proxy substitution when the user explicitly selected direct access.
- Hard-coded webdriver and mismatched Firefox/Chrome fingerprint workarounds.

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

#### Added

- **Schema expanded** from 12 to **36 fields**.
- **New fields**: `type`, `resultType`, `titleHtml`, `link`, `host`, `favicon`, `sourceUrl`, `sourceLogo`, `snippetHtml`, `description`, `date`, `publishedAtRaw`, `relativeTime`, `imageUrl`, `images`, `subcategory`, `tags`, `searchUrl`, `searchMetadata`, `query`, `country`.
- **New view**: `fullDetails` — all 36 fields.
- **INPUT.json** added at project root for local validation.

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

#### Added

- Initial production release of the Yahoo News 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.
