# Changelog of Adobe Stock Search Scraper (`scrapeai/adobe-stock-search-scraper`) Actor

- **URL**: https://apify.com/scrapeai/adobe-stock-search-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/scrapeai/adobe-stock-search-scraper.md

## Changelog

All notable changes to the **Adobe Stock Search Scraper** are listed here.

***

### \[2.0.0] — 2026-07-16

#### Added

- **Request interception** — captures Adobe Stock's internal search JSON API via
  Playwright network interception. This is the primary extraction strategy and is
  significantly more stable and faster than DOM parsing.
- `src/extractors/api-interceptor.js` — handles interception setup, response capture,
  and JSON parsing across multiple Adobe Stock API response shapes.
- `extractTotalResults()` utility for reading total result counts from API responses.
- `preNavigationHooks` now attaches the API interceptor before each page load.
- `postNavigationHooks` to clean up the interceptor after page processing.

#### Changed

- **Output schema** — field names updated to match the canonical spec:
  `thumbnailUrl` → `thumbnail`, `imageUrl` → `previewImage`, `url` → `detailUrl`,
  `authorName` → `contributor`, `authorUrl` → `contributorUrl`, `mediaType` → `contentType`,
  `searchQuery` → `searchKeyword`, `pageNum` → `pageNumber`.
- `routes/handlers.js` — dual-strategy extraction: priority to API interception,
  automatic fallback to DOM-based extraction if no API responses captured.
- Added `premium` boolean field to extracted assets (populated from API or DOM).

#### Improved

- Robust fallback chain: API interception → DOM extraction → graceful handling
  when no assets found.
- Debug data (HTML + screenshot) saved automatically when extraction yields zero results.
- Normalized field mapping ensures output consistency regardless of extraction path.

***

### \[1.1.0] — 2026-05-19

#### Improved

- Refactored source into modular architecture: `extractors/`, `filters/`, `routes/`, `errors/`, `schema/`
- Added `deduplicateAssets()` filter to prevent duplicate records across paginated results
- Added `ErrorHandler` with typed error categories for clearer run failure messages
- Improved blocked-page detection with robust `isBlocked()` check

#### Added

- `validate-datasets.js` helper for smoke-testing local dataset output

***

### \[1.0.0] — 2025-01-01

#### Added

- Initial release
- Keyword search across all Adobe Stock asset types (photos, videos, vectors, illustrations, templates, 3D)
- Filter by asset type, orientation, and sort order
- Safe search toggle
- Configurable `maxItems` limit with automatic pagination
- Output: `assetId`, `url`, `title`, `mediaType`, `thumbnailUrl`, `imageUrl`, `dimensions`, `authorName`, `licenseType`, `scrapedAt`
- Residential proxy support via Apify Proxy
