【问题标题】:Find out YouTubeUserID if I know display name如果我知道显示名称,请找出 YouTubeUserID
【发布时间】:2014-06-16 08:16:18
【问题描述】:

如果我仅使用 API V2 和 C# 知道 YouTube 显示名称,如何获取 YouTubeUserID? 我试过了

string userDetailsUrl = "https://gdata.youtube.com/feeds/api/users/{0}?alt=json";
string youtubeurl = String.Format(userDetailsUrl, formValues["[0].UserFullName"].Trim().Replace(" ", ""));

在 UserFullName 中,我给出了显示名称。但它并没有在所有情况下给我确切的结果。所以请建议任何替代方式。

【问题讨论】:

    标签: c# youtube-api


    【解决方案1】:

    如果您真的还不能使用 V3,那么您至少应该使用 v2.1,所以请致电:

    https://gdata.youtube.com/feeds/api/users/{0}?alt=json&v=2.1
    

    那么在响应中,payload条目中会返回很多额外的属性,其中之一是:

    author.yt$userId
    

    最后,如果您不能使用 v 2.1,则从您上面提到的 gdata 请求中获取响应,并查看 id 属性...它的值如下所示:

    http://gdata.youtube.com/feeds/api/users/_x5XG1OV2P6uZZ5FSM9Ttw
    

    获取 URL 的最后一个片段,在下划线前添加字母“UC”,就可以开始了。

    【讨论】:

    • 感谢您的回复。我已经知道哪个元素将包含 YT 用户 ID。我的问题是我将作为参数传递的内容(对于 'users/{0}' ),因为我只知道用户的显示名称(这不是唯一的);不是唯一的用户名。
    • 抱歉...我以为您想从显示名称中获取用户 ID。如果您有用户 ID,只需传递它而不是全名或显示名称,它应该也可以工作;它们被设计为可互换的,以允许人们远离显示名称(出于您提到的原因......它们不是唯一的)。
    • 感谢 jlmcdonald。我想你对我的评论感到困惑。我只知道用户的显示名称,例如:请在 youtube 中搜索“Sridhar Narayanan”。您可以看到一些 5 到 6 个具有相同名称的配置文件。我的问题是我是否知道“Sridhar Narayanan”,即用户的显示名称;我将如何找到我们唯一的用户 ID?
    • 因此,如果您只知道显示名称,则必须向 gdata.youtube.com/feeds/api/users{DISPLAY_NAME_HERE}?alt=json&v=2.1 发出 GET 请求 ...如果有多个用户,您必须遍历结果并应用某种逻辑来确定您真正想要的结果。说您想要一种在许多非唯一显示名称中获取唯一用户 ID 的方法是不合逻辑的,因为 YouTube 不能只猜测您真正想要哪个。您最初从哪里获得 displayName ?也许该来源可以为您提供其他可以匹配的东西?
    • 这个 GET 不会工作,它会告诉你找不到页面。实际上,我有一个应用程序,我们将在其中获取具有特定关键字的 YT 视频。我们将显示视频、上传视频的人的显示名称、cmets 等。还有另一个功能可以从中过滤掉一些用户,因为我们有一个数据输入屏幕,我们试图保存显示名称。我所做的是因为显示名称不是唯一的,所以我尝试了对唯一用户 ID 的 GET 调用并保存在数据库中。这样我就可以通过将视频的作者 ID 与保存在数据库中的唯一用户 ID 进行比较来过滤掉
    猜你喜欢
    • 1970-01-01
    • 2020-06-27
    • 2022-08-24
    • 2022-01-17
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 2017-11-08
    • 2016-09-12
    相关资源
    最近更新 更多