【问题标题】:Google / Youtube Api (v3) - verify the owner of a videoGoogle / Youtube Api (v3) - 验证视频的所有者
【发布时间】:2015-12-10 08:33:03
【问题描述】:

背景:
我正在使用 Symfony2 (php) 构建一个网站,并且我已经实现了一个社交 (google) 登录功能(通过 HWIOAuthBundle),它允许用户:
- 使用自己的谷歌帐户注册一个新帐户
- 将 google 帐户链接到现有的非社交帐户
结果,在我的数据库中,users 表已经有一个google_id 字段。

我想做的事:
用户必须能够提交自己视频的 youtube 链接。这些链接将保存在数据库中,但首先我需要验证视频是否属于提交链接的用户。换句话说:用户不能提交别人上传的视频。
我计划使用你可以在谷歌开发者网站上找到的 Youtube API (php)。

问题:
我怎样才能验证这个条件?我可以使用 users 表中已有的 Google ID 吗?还是我需要创建一个新的 youtube_id 字段,因为 id 与 google_id 不同?我应该调用什么 api 函数/方法来验证视频所有权?
想法?

【问题讨论】:

  • 老实说,听起来您需要进一步阅读 API 使用情况,然后再继续前进。您将能够从参考页面中找到您需要的信息

标签: php symfony youtube-api


【解决方案1】:

尝试通过 v3/videos 检查它们 - https://developers.google.com/youtube/v3/docs/videos/list

如果你使用“part=sn-p” 您将在 items->sn-p->channelId 和 items->sn-p->channelTitle 中看到频道信息

例如https://www.youtube.com/watch?v=YVe2THgSDxc加载

https://www.googleapis.com/youtube/v3/videos?id=YVe2THgSDxc&part=snippet&key=[YOUR_API_KEY]

你会得到

{
 "kind": "youtube#videoListResponse",
 "etag": "*******",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#video",
   "etag": "*******",
   "id": "YVe2THgSDxc",
   "snippet": {
    "publishedAt": "2018-01-22T15:47:46.000Z",
    "channelId": "UCiP6wD_tYlYLYh3agzbByWQ",
    "title": "30 Minute HIIT Cardio*******",
    "description": "Full info for thi*******.",
    "thumbnails": {
     "default": {
      "url": "https://i.ytimg.com/vi/YVe2THgSDxc/default.jpg",
      "width": 120,
      "height": 90
     },
    *******
    },
    "channelTitle": "FitnessBlender",
    "tags": [
     "fitness blender",
     "fitness",
     "blender",
     "workout",
     "workout videos",
     "hiit workout",
     "cardio workout",
     "hiit cardio",
     "cardio at home",
     "hiit at home",
     "at home hiit",
     "at home workouts",
     "free workout videos",
     "hiit cardio workout",
     "strength",
     "strength training",
     "strength training workout",
     "dumbbell workout",
     "at home strength training",
     "strength and hiit",
     "hiit and strength",
     "lower body workout",
     "butt workout",
     "thigh workout",
     "butt and thigh workout",
     "fat burning workout",
     "muscle building workout"
    ],
    "categoryId": "26",
    "liveBroadcastContent": "none",
    "localized": {
     "title": "30 Minute HIIT Ca*******",
     "description": "Full info for this *******"
    }
   }
  }
 ]
}

因此,如果您有用户的频道 ID 或频道名称,您可以将其与视频的频道 ID 或频道名称进行比较。


如果你有用户名但没有他的频道列表你可以通过 v3/channels 获得它

例如,这会获取用户“popsugartvfit”的频道列表

https://www.googleapis.com/youtube/v3/channels?&part=contentDetails&forUsername=popsugartvfit&key=[YOUR_API_KEY]

你会得到

{
 "kind": "youtube#channelListResponse",
 "etag": "*****",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 5
 },
 "items": [
  {
   "kind": "youtube#channel",
   "etag": "*******",
   "id": "UCBINFWq52ShSgUFEoynfSwg",
   "contentDetails": {
    "relatedPlaylists": {
     "uploads": "UUBINFWq52ShSgUFEoynfSwg",
     "watchHistory": "HL",
     "watchLater": "WL"
    }
   }
  }
 ]
}

并使用 if 进行验证

【讨论】:

    猜你喜欢
    • 2017-04-07
    • 2015-08-27
    • 2014-02-11
    • 2015-05-23
    • 2016-03-12
    • 2013-10-12
    • 2017-11-21
    • 2013-09-11
    • 1970-01-01
    相关资源
    最近更新 更多