Added
- Reliability:
RetryPolicy(exponential backoff, jitter,Retry-After),
RateLimiter/min_interval,ContextCachewith TTL and a global
DEFAULT_CONTEXT_CACHEkeyed by(language, region). New client kwargs
retry,rate_limiter,min_interval,context_cache. - Exceptions:
YtScrapeErrorbase (aliasYtScraperError),RateLimited,
BotDetected(aliasCaptchaRequired),ConsentRequired,
VideoUnavailable,AgeRestricted;RequestError.status_code/.url. - Debug logging on the
ytscrapelogger (requests, retries, timings). YouTube.channel_videos()/AsyncYouTube.channel_videos()returning lazy
ChannelVideos/AsyncChannelVideos.- Navigation helpers:
Video.details()/comments()/channel_details(),
VideoDetails.comments()/channel_details(),Channel.details()/videos(),
ChannelDetails.videos();UnboundModelErrorfor unbound models. Thumbnail(url, width, height)andthumbnailstuples on all models.VideoDetails.published_at/uploaded_atdatetimes;Video.published_at.- Parse helpers
parse_count,parse_relative_time,parse_date. - CI: pytest matrix 3.10–3.14 with coverage (Codecov) and mypy, nightly
live tests, Dependabot; publishing requires passing tests. - Docs: reliability, models & navigation, channel videos, recipes, FAQ,
migration guide.
Changed (breaking)
Video.viewsisint | None(raw text inviews_text).Video.publishedremoved →published_text+published_at.Channel.subscribers/video_count,Playlist.video_count,
ChannelDetails.subscribers/video_count/view_countare
int | Nonewith*_textcounterparts.video()raisesVideoUnavailable/AgeRestricted/BotDetected.- Exports serialise datetimes as ISO 8601 and thumbnails as lists of dicts.
Fixed
- Examples updated for numeric counts.