yt 3.0.2
yt: ^3.0.2 copied to clipboard
Native Dart interface to multiple YouTube REST APIs including the Data and Live Streaming API.
3.0.2 - 2026-05-19 #
Changed #
-
Repository URL migrated to
github.com/cdavis-code/yt_workspace—homepage,repository, andissue_trackerfields inpubspec.yamlnow point at the consolidated workspace monorepo. No code changes. -
Tightened dev/transitive dependency constraints following
dart pub upgrade --tighten:Dependency Old New json_annotation^4.11.0^4.12.0json_serializable(dev)^6.13.2^6.14.0
3.0.1 - 2026-05-18 #
Added #
-
GoogleOAuthCredentialsJsonSerializable model — New typed model for parsing OAuth client secrets files downloaded from Google Cloud Console. Supports bothwebandinstalledformats with proper field mapping (client_id,client_secret,auth_uri,token_uri,redirect_uris,project_id). Includes securetoString()that masks the client secret. Exposed viapackage:yt/yt.dart. -
Robust access tokens validation —
OAuthAccessControlIo.init()now validates that the access tokens file contains a valid JSON object before attempting to parse. Throws anArgumentErrorwith actionable guidance ("Delete the file and re-authorize with yt_cli") when the file is corrupted or contains invalid JSON, replacing cryptic type cast errors.
Changed #
-
BREAKING: Replaced
googleapis_authdependency with the cross-platformoauth2: ^2.0.5package. All public OAuth APIs that previously usedgoogleapis_authtypes now usepackage:oauth2types directly.Before ( googleapis_auth)After ( oauth2)Yt.withOAuth({ClientId? oAuthClientId})Yt.withOAuth({oauth2.Client? oauthClient})GoogleOAuthCredentials.toClientId() → ClientIdGoogleOAuthCredentials.toAuthorizationCodeGrant() → oauth2.AuthorizationCodeGrantOAuthCredentials.oAuthClientId(getter)OAuthCredentials.toAuthorizationCodeGrant()OAuthAccessControl(ClientId?, AccessCredentials?)OAuthAccessControl([oauth2.Client?]) -
BREAKING: The on-disk access tokens file format has changed. Tokens are now serialized via
oauth2.Credentials.toJson()instead ofgoogleapis_auth.AccessCredentials.toJson(). Existing token files written by yt< 3.0.0(or yt_cli< 3.0.0) are no longer readable — users must delete the existing tokens file and re-runyt authorize. -
BREAKING: Renamed default OAuth credential filenames used by
OAuthAccessControlIoand exposed viaUtil:Constant Old default New default Util.credentialsFilenamecredentials.jsonclient_secrets.jsonUtil.accessCredentialsFilenameaccess_credentials.jsonaccess_tokens.jsonUtil.defaultCredentialsFilePath.yt/credentials.json.yt/client_secrets.jsonUtil.accessCredentialsFilePath.yt/access_credentials.json.yt/access_tokens.jsonExisting users who relied on the previous default filenames must either rename their files on disk or set
YT_CLIENT_SECRETS_FILE/YT_ACCESS_TOKENS_FILEto point at the legacy locations. -
OAuthAccessControlIonow embeds the OAuth interactive flow directly: if no tokens file is present, it parsesclient_secrets.json, opens the browser, starts a local callback server (HttpServer.bind), and persists the resultingoauth2.Credentials. This removes the need for callers to pre-authorize externally. -
Web stub (
oauth_access_control_web.dart) throwsUnsupportedError— browser OAuth must be performed by the application and the resultingoauth2.Clientpassed toYt.withOAuth(oauthClient: ...).
Fixed #
- Access tokens serialization —
OAuthAccessControlIonow properly serializesAccessCredentialsvia.toJson()instead of directjson.encode(), ensuringaccessTokenis written as a structured object (withtype,data,expiry) rather than a plain string. This matches the format expected bygoogleapis_auth.AccessCredentials.fromJson().
Unreleased #
2.3.1 - 2026-05-17 #
2.3.0 - 2026-05-16 #
Added #
- Activities API — Channel activity feeds including uploads, likes, favorites, subscriptions, and playlist additions via
yt.activities.list() - Workspace structure with multiple packages
- Added yt_cli, yt_js, yt_mcp, yt_mcp_js packages
- Enhanced documentation across all packages
Changed #
- Dependency updates
Removed #
- BREAKING: removed chatbot functionality (Chatbot, Dialog, Keyword classes)
- Removed experimental chatbot features from live chat
2.2.6+5 #
- publication readiness: funding link, topics, .pubignore updates
2.2.6+4 #
- README modernization (Quick Start, Features, Configuration table, Documentation, License sections)
- pana score improved to 160/160
- dependency version constraints tightened
- security hardening (credential sanitization in logs, safe toString() redaction)
2.2.6+1 #
- improved pub.dev listing
2.2.6 #
- dep bump
- remove flutter example
- new sdk
- new formatting
2.2.5+5 #
- dependency bump
2.2.5+4 #
- more nullable fields
- dependency bump
2.2.5+3 #
- better error handling/messages
2.2.5+2 #
- fix pubspec
2.2.5+1 #
- dependency bump
2.2.5 #
- dependency bump
2.2.1 #
- remove dart:io dependency from library to enable web platform support
- api doc updates
2.2.0-dev.2 #
- remove dart:io dependency from library to enable web platform support
- api doc updates
2.2.0-dev.1 #
- new oauth implmentation that supports io versus browser usage
2.2.0-dev.1 #
- new oauth implmentation that supports io versus browser usage
2.1.0 #
- implements
commentThreads(partial) - implements
comments(partial) - manipulate dio interceptor order
- dependency bump
- update auth scope
- Authentication header in dio
Interceptor - updated scope
2.0.6+9 #
- badge update
- README tweaks
2.0.6+8 #
- more relevant flutter example
- close out http connection so cli code exits immediately
- superclasses to remove code repitition
- updated README for main project and flutter example
2.0.6+7 #
- switch to googleapis_auth package for cli
- cli is working again, even thoough if anyone noticed they didn't submit an issue
- the error returned by the API server is now displayed when an exception is generated by a cli command
- added an overwrite credentials flag to the cli
authorizecommand
2.0.6+6 #
- README changes
- support for
stream update - dependency bump
2.0.6+5 #
- auth by key doesn't need "async"
2.0.6+4 #
- fix publishing tools
2.0.6+3 #
- adjustments
2.0.6+1 #
- dependency bump
2.0.6 #
- build tools
2.0.5 #
- fixing pub points
2.0.4 #
- remove deprecated dependency
2.0.3 #
- fix apiKey
2.0.2 #
- better chatbot docs
2.0.1 #
- added chatbot example, better docs
2.0.0 #
- Command line app provided, some functional updates
1.2.2 #
- Export CachePolicy
1.2.1 #
- Integration of dio cache interceptor. Default dont use DioCacheIntercepter.
- Fetch video details
1.1.4 #
- bugfix for flutter build web
1.1.3 #
- autostop is not required
1.1.2 #
- custom exception for authorization failure
1.1.1 #
- custom exception for authorization failure
1.1.0 #
- video upload actually works, refactored thumbnail upload and added support for the VideoCategories API
1.0.7 #
- correction for video upload, and dependency updates
1.0.6 #
- added the playlists API
1.0.5 #
- simplified OAuth2 now with persisted refresh token, and more API docs
1.0.4 #
- tweaked OAauth2 authentication and improved README
1.0.3 #
- still improving the api doc
1.0.2 #
- even more updated api doc, and more channels API
1.0.1 #
- updated api doc, and starting the channels API
1.0.0 #
- better support for Flutter apps, added a Flutter example
0.0.2 #
- improved README
0.0.1 #
- initial release