
gog youtube activities list 详解用 gogcli 在终端查询 YouTube 频道动态与个人动态【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcligog youtube activities list别名gog yt activities ls是 gogcliGoogle Workspace in your terminal中用于读取 YouTube 活动流Activities的只读命令既可基于 API Key 查询任意公开频道近期的上传、订阅、点赞等动作也可基于 OAuth 账号查询认证用户本人频道的最新动态。本文以该命令的生成式参考文档为骨架结合 YouTube 功能指南 与 命令实现源码 展开读完你可以掌握它的完整参数语义、两种认证数据源的切换原理、输出与分页机制以及常见错误如youtubeSignupRequired的处理方法。说明本命令页由gog schema --json生成维护时执行make docs-commands下述标志表即命令的真实 CLI 定义。命令定位与基本用法gog youtube activities list是gog youtube命令树中activities子命令下的唯一动作其功能定义在 internal/cmd/youtube.gotype YouTubeCmd struct { Activities YouTubeActivitiesCmd cmd: name:activities aliases:activity help:List channel activities ... } type YouTubeActivitiesCmd struct { List YouTubeActivitiesListCmd cmd: name:list aliases:ls help:List activities for a channel (or authenticated user) }命令树支持多级别名完整写法为gog youtube (yt) activities (activity) list (ls) [flags]也就是说下面几种写法完全等价gog youtube activities list --channel-id UC_x5XG1OV2P6uZZ5FSM9Ttw gog yt activities ls --channel-id UC_x5XG1OV2P6uZZ5FSM9Ttw gog yt activity list --channel-id UC_x5XG1OV2P6uZZ5FSM9Ttw两种数据来源公开频道API Key与认证用户OAuthactivities list的核心逻辑internal/cmd/youtube.go#L63-L87是二选一模式传--channel-id查公开频道传--mine查本人频道。底层通过getYouTubeChannelListService选择服务构造方式internal/cmd/youtube.go#L973-L988公开频道查询不传--mine使用 YouTube Data API v3 的 API Key 构造只读服务getYouTubeReadService。按 YouTube 功能指南 的说明频道、视频、活动activity、播放列表、评论、搜索等公开读操作只需启用 YouTube Data API v3 并配置 API Keygog config set youtube_api_key YOUR_API_KEY gog yt activities list --channel-id UC_x5XG1OV2P6uZZ5FSM9Ttw --max 5API Key 除了存进配置也支持环境变量GOG_YOUTUBE_API_KEY见 internal/googleapi/youtube.go 与getYouTubeAPIKey的错误提示。本人频道查询--mine必须同时提供账号-a/--account走 OAuth 账号服务getYouTubeServiceForAccount。账号读操作使用默认的youtube.readonlyscope无需额外授权gog auth add yougmail.com --services youtube gog yt activities list --mine --account yougmail.com这里有一个容易被忽略的细节即便没有显式传--account只要检测到账号选择器存在--account、环境变量GOG_ACCOUNT或--access-token任一出现见 internal/cmd/youtube_services.go#L1071-L1073公开查询也会自动切换到 OAuth 账号服务而不是 API Key。账号没有频道时的处理如果 OAuth 查询返回youtubeSignupRequired错误说明该账号尚未开通 YouTube 频道。按 YouTube 功能指南 的建议先在 YouTube 网页端初始化一次频道再重试即可。核心命令参数以下是与本命令直接相关的参数继承自命令定义 internal/cmd/youtube.go#L56-L61参数类型默认值说明--channel-idstring要查询的频道 ID公开数据可用 API Key--minebool查询认证用户本人的频道要求配合-a/--account--max--limitint6425单页最大结果数合法范围为 150--pagestring分页令牌用上一页响应里的 nextPageToken 翻页两条互斥与必选约束源码中均有校验测试见 internal/cmd/youtube_test.go--channel-id与--mine不能同时使用否则报错use either --channel-id or --mine, not both二者必须至少指定一个空白--channel-id会被 TrimSpace 后视同未提供否则报错set --channel-id ID or --mine (--mine requires -a account)--mine必须配合账号使用否则requireAccount会直接报错。--max受validateYouTubeMax限制小于 1 或大于 50 都会拒绝执行并提示--max must be between 1 and 50internal/cmd/youtube.go#L966-L971这是 YouTube Data API 对maxResults的硬性约束。全局标志完整继承以下标志是 gogcli 的全局/根级标志同样适用于本命令完整表格继承自 命令参考文档FlagTypeDefaultHelp--access-tokenstringUse provided access token directly (bypasses stored refresh tokens; token expires in ~1h)-a--account--acctstringAccount email, alias, or auto for authenticated Google API commands--clientstringOAuth client name (selects stored credentials token bucket)--colorstringautoColor output: auto|always|never--disable-commandsstringComma-separated list of disabled commands; dot paths allowed-n--dry-run--dryrun--noop--previewboolDo not make changes; print intended actions and exit successfully--enable-commandsstringComma-separated list of enabled command prefixes; dot paths allowed (restricts CLI)--enable-commands-exactstringComma-separated list of exact enabled commands; dot paths allowed and parent commands do not enable children-y--force--assume-yes--yesboolSkip confirmations for destructive commands--gmail-no-sendboolfalseBlock Gmail send operations (agent safety)-h--helpkong.helpFlagShow context-sensitive help.--homestringOverride gogcli config/data/state/cache root (equivalent to GOG_HOME)-j--json--machineboolfalseOutput JSON to stdout (best for scripting)--no-input--non-interactive--noninteractiveboolNever prompt; fail instead (useful for CI)-p--plain--tsvboolfalseOutput stable, parseable text to stdout (TSV; no colors)--quota-projectstringGoogle Cloud project to bill for API usage (sent as X-Goog-User-Project; some APIs require it with --access-token or ADC)--readonlyboolfalseBlock mutating API requests at runtime; auth add also requests read-only OAuth scopes--results-onlyboolIn JSON mode, emit only the primary result (drops envelope fields like nextPageToken)--select--pick--projectstringIn JSON mode, select comma-separated fields (best-effort; supports dot paths). Desire path: use --fields for most commands.-v--verboseboolEnable verbose logging--versionkong.VersionFlagPrint version and exit--wrap-untrustedboolfalseIn JSON/raw output, wrap fetched text fields in external untrusted-content markers其中与本命令最相关的输出控制是--json-j结构化输出适合脚本与 Agent 消费输出形如{items: [...], nextPageToken: ...}的包络结构--plain-p输出稳定的 TSV 文本、无颜色便于awk/cut等管道处理--results-only在 JSON 模式下只输出主结果丢弃nextPageToken等包络字段--select按逗号分隔字段做 JSON 字段筛选尽力而为支持点路径--color控制颜色输出auto默认/always/never。输出列、分页与内部实现activities list的 API 调用在 internal/cmd/youtube.go#L73-L86call : svc.Activities.List([]string{snippet, contentDetails}). MaxResults(c.Max). PageToken(c.Page) if channelID ! { call call.ChannelId(channelID) } else { call call.Mine(true) } resp, err : call.Do()可以看到请求固定携带snippet与contentDetails两个 part然后由writeYouTubeList统一渲染internal/cmd/youtube.go#L990-L1007默认表格输出四列分别为KIND、VIDEO_ID、TITLE、PUBLISHED_AT列定义见 internal/cmd/youtube_presentation.go#L12-L34。VIDEO_ID取ContentDetails.Upload.VideoId即上传类活动的视频 ID其余字段来自Snippet输出前会经过sanitizeTab清洗制表符空结果提示无数据时向 stderr 打印No activities分页响应中的nextPageToken会随 JSON 包络返回并在终端输出末尾打印下一页提示printNextPageHint。拿到令牌后把值传给--page即可继续翻页例如gog yt activities list --channel-id UC_x5XG1OV2P6uZZ5FSM9Ttw --page CAUQAA注意本命令当前不支持类似playlists items list的--all自动翻页开关该开关定义在 internal/cmd/youtube.go#L243-L248如需拉取全部数据需要自行循环--page。传输层的实现位于 internal/googleapi/youtube.goAPI Key 路径使用带重试的 HTTP transportNewRetryTransport构造服务账号路径通过optionsForAccount以youtube.readonlyscope 构造 OAuth 客户端。两者的差别也可在测试 internal/cmd/youtube_test.go#L380-L447 中看到当配置了账号时activities by channel会命中/youtube/v3/activities?channelId...且使用 OAuth 服务而不会被 API Key 服务接管。结合其他 YouTube 子命令使用activities list只负责“发现动态”配合gog yt命令树中的其他只读命令即可形成完整工作流命令树定义见 internal/cmd/youtube.go#L42-L50在活动流中发现新上传后用gog yt videos list --id VIDEO_ID --parts all --json拉取该视频的完整详情用gog yt channels list --id CHANNEL_ID查看频道订阅数、视频数等统计用gog yt playlists items list --playlist-id LL --account yougmail.com读取自己的“喜欢的视频”播放列表LL是特殊播放列表 ID用gog yt subscriptions list --account yougmail.com管理订阅关系。完整的命令族参考见 gog youtube activities、YouTube 功能指南 以及 命令索引。常见问题与最佳实践youtubeSignupRequired账号无频道导致先在网页端初始化频道再重试见 YouTube 功能指南YouTube API key required公开查询未配置 API Key执行gog config set youtube_api_key YOUR_API_KEY或设置GOG_YOUTUBE_API_KEY--max越界YouTube Data API 限制maxResults最大为 50gogcli 会提前在本地拦截并给出明确提示脚本化输出CI 或 Agent 场景优先--json --results-only或配合--select挑字段人工查看用默认表格管道处理用--plainTSV--color never可彻底关闭颜色只读保障本命令本身是纯只读操作配合--readonly运行时可进一步阻断一切变更类 API 请求适合放入安全策略约束的自动化流程。【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考