# Changelog of Ecosia Videos Scraper (`searchapi/ecosia-videos-scraper`) Actor

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

## Changelog

### Unreleased

- Reads Ecosia's own server-rendered page payload (`script#vike_pageContext` → `data.results.mainline[]`) instead of depending on the frontend's CSS class names, and keeps the rendered-card extractor as a fallback. Records carry `retrievalMethod: ecosia_page_context_json` on that path.
- Adds a plain HTTPS transport for the same public document before the browser transport, and reports a refused request (status plus firewall markers) instead of parsing it as an empty page.
- The browser transport now lets a Cloudflare/Ecosia firewall interstitial resolve on its own for a bounded 20 s instead of throwing at the 403 before the page handler runs (`sessionPoolOptions.blockedStatusCodes: []`). Nothing is clicked, injected or answered: an interactive challenge that does not clear fails closed and the next attempt uses a fresh session.
- `description`/`snippet` are no longer schema-required (a video result may not carry one) and `retrievalMethod` accepts both extraction paths.

### 2.0.0

- Added stable IDs, source and media aliases, positions, query context, market context, and retrieval provenance.
- Extracted current duration labels, provider links, thumbnails, publication dates, video IDs, and descriptions from the live result cards.
- Added a versioned Actor manifest, input schema, dataset schema, views, sample output, and dataset audit.
- Updated the Playwright Chrome runtime and kept pagination bounded by the existing input controls.
