Skip to content

v2.4.0 — Sync parity, colorless job verbs, dataset error reporting

Latest

Choose a tag to compare

@shahar-brd shahar-brd released this 17 Jun 13:53
· 4 commits to main since this release
e55918b

Highlights

  • Sync client paritySyncBrightDataClient now mirrors the async surface. Adds client.datasets (fixes the
    AttributeError), the 5 missing scrapers (scrape.tiktok / youtube / reddit / perplexity / digikey), the 2 missing
    search verticals (search.tiktok / youtube), Pinterest trigger/status/fetch, and Instagram-search profiles / reels_all.
  • Service-level job verbs (colorless pattern) — every scraper now exposes generic status / wait / fetch /
    to_result(snapshot_id) (on BaseWebScraper), and DiscoverService gains status / wait / fetch / to_result(task_id).
    A triggered job can be driven by its id alone, like the crawler. Purely additive — existing job.fetch() etc. are unchanged.
  • Discover sync manual pathSyncBrightDataClient adds discover_status / discover_wait / discover_fetch /
    discover_to_result(task_id) plus a colorless DiscoverSnapshot handle.
  • Better dataset errors — failed snapshots now expose the API failure reason (and the raw status response as a fallback)
    plus the snapshot_id, instead of DatasetError: Snapshot failed: None. SnapshotStatus retains the full response (.raw)
    and matches more reason keys (error / error_message / message / failure_reason). The sync path inherits the fix.

⚠️ Breaking / Contract change

  • Sync discover_trigger() now returns a DiscoverSnapshot (a typed, drivable handle) instead of the async-only DiscoverJob,
    which couldn't be used from sync.
    Migration: poll via client.discover_status(snap.task_id) / client.discover_fetch(snap.task_id).

Full changelog: https://github.com/brightdata/sdk-python/blob/main/CHANGELOG.md