You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Youtube Go API实现类似curl请求获取视频上传日期?

用Go调用YouTube API获取视频上传日期的解决方案

别担心,我来帮你理清这个问题!你要实现的操作对应YouTube Data API的Videos.list方法,在Go的SDK里就是Videos.List函数,它会直接返回包含VideoSnippet的视频对象,其中就有你需要的上传日期字段。

步骤1:安装依赖

首先确保你已经安装了YouTube的Go SDK:

go get google.golang.org/api/youtube/v3

步骤2:完整代码示例

下面是可以直接运行的代码,替换你的API密钥和目标视频ID即可:

package main

import (
	"context"
	"fmt"
	"log"

	"google.golang.org/api/option"
	"google.golang.org/api/youtube/v3"
)

func main() {
	// 替换为你的Google API密钥(需要启用YouTube Data API v3)
	apiKey := "YOUR_GOOGLE_API_KEY"
	// 替换为你要查询的视频ID(比如视频URL里?v=后面的字符串)
	targetVideoID := "dQw4w9WgXcQ"

	// 初始化YouTube服务客户端
	ctx := context.Background()
	youtubeService, err := youtube.NewService(ctx, option.WithAPIKey(apiKey))
	if err != nil {
		log.Fatalf("创建YouTube服务客户端失败: %v", err)
	}

	// 构造API请求:指定要获取的资源部分为"snippet",传入视频ID
	videosCall := youtubeService.Videos.List([]string{"snippet"}).Id(targetVideoID)
	// 执行请求并获取响应
	response, err := videosCall.Do()
	if err != nil {
		log.Fatalf("获取视频详情失败: %v", err)
	}

	// 处理响应结果
	if len(response.Items) == 0 {
		log.Fatal("未找到对应ID的视频")
	}

	// 提取上传日期(PublishedAt字段就是视频的上传时间)
	targetVideo := response.Items[0]
	uploadDateTime := targetVideo.Snippet.PublishedAt
	fmt.Printf("视频上传日期: %v\n", uploadDateTime)
}

关键部分解释

  • youtubeService.Videos.List([]string{"snippet"}):对应你curl命令里的part=snippet,告诉API我们需要获取视频的基本信息片段(包含上传日期、标题、描述等)
  • .Id(targetVideoID):对应curl里的id=${ID},指定要查询的单个或多个视频ID(多个ID可以用逗号分隔传入)
  • response.Items[0].Snippet.PublishedAt:返回的Video对象里的Snippet就是你在godoc里找到的VideoSnippet,其中PublishedAt字段就是视频的上传日期,类型是*time.Time,可以直接格式化输出

注意事项

  • 确保你的API密钥已经在Google Cloud控制台启用了YouTube Data API v3权限
  • 如果要批量查询多个视频,只需要把.Id()的参数改成逗号分隔的ID字符串即可,比如.Id("video1,video2,video3")
  • 记得处理可能的错误情况,比如API调用限额、视频不存在、权限不足等

内容的提问来源于stack exchange,提问作者hendry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:11:22