- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要获取用户 youtube 视频。这是我的代码,它只尝试获取用户 youtube channel 。但它不起作用 - 选择帐户后,loadYoutubeChannels 总是报错。我读了这个answer还有这个yt-direct-lite-android ,但仍然不明白为什么他们没有得到错误,但我得到了。
这是我的代码:
class YotubeTestActivity extends AppCompatActivity {
private var credential: GoogleAccountCredential = _
private var service: YouTube = _
override def onCreate(savedInstanceState: Bundle): Unit = {
super.onCreate(savedInstanceState)
val prefs = getPreferences(Context.MODE_PRIVATE)
credential = GoogleAccountCredential.usingOAuth2(this, List(YouTubeScopes.YOUTUBE_READONLY))
credential.setSelectedAccountName(prefs.getString(PrefAccountName, None.orNull))
val transport = new NetHttpTransport()
val factory = new JacksonFactory()
service = new YouTube.Builder(transport, factory, credential)
.setApplicationName(getString(R.string.app_name))
.setYouTubeRequestInitializer(new YouTubeRequestInitializer(ApiKey)) // <-- (1)
.build()
}
/*
check for Google Play Service
choose account
*/
private def onAccountChooseOk(accountName: String): Unit = {
credential.setSelectedAccountName(accountName)
val prefs = getPreferences(Context.MODE_PRIVATE).edit()
prefs.putString(PrefAccountName, accountName)
prefs.commit()
rxScalaRunInBackground(loadYoutubeChannels, onLoadYoutubeChannelsOk, onLoadYoutubeChannelsError)
}
private def loadYoutubeChannels(): ChannelListResponse = {
val channelsQuery = service.channels().list("contentDetails")
channelsQuery.setMine(true)
channelsQuery.setMaxResults(50l)
//channelsQuery.setKey(ApiKey) // <-- (2)
channelsQuery.execute()
}
private def onLoadYoutubeChannelsError(e: Throwable): Unit = {
Log.e(Tag, "onLoadYoutubeChannelsError", e)
e match {
case _: GooglePlayServicesAvailabilityIOException => // checkGooglePlayServicesAvailable()
case e: UserRecoverableAuthIOException => // startActivityForResult(e.getIntent, RequestAuthorization);
case _ => finish()
}
}
private def onLoadYoutubeChannelsOk(response: ChannelListResponse): Unit = {
Log.e(Tag, s"onLoadYoutubeChannelsOk: $response")
}
}
object YotubeTestActivity {
private val Tag = "YotubeTestActivity"
private val PrefAccountName = "accountName"
private val ApiKey = "API_KAY_FROM_DEV_CONSOLE"
}
当我不使用 ApiKey 时,我的意思是当 (1) 和 (2) 被注释时,我得到这个错误:
{
"code" : 403,
"errors" : [ {
"domain" : "usageLimits",
"message" : "Access Not Configured. YouTube Data API has not been used in project 608941808256 bef$re or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube/overview?project=608941808256 then r$try. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
"reason" : "accessNotConfigured",
"extendedHelp" : "https://console.developers.google.com/apis/api/youtube/overview?project=60894180$256"
} ],
"message" : "Access Not Configured. YouTube Data API has not been used in project 608941808256 befor$ or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube/overview?project=608941808256 then ret$y. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry."
}
当我使用浏览器 key 或 api key 时,我得到这个错误:
{
"code" : 401,
"errors" : [ {
"domain" : "global",
"location" : "Authorization",
"locationType" : "header",
"message" : "Invalid Credentials",
"reason" : "authError"
} ],
"message" : "Invalid Credentials"
}
据我所知,yt-direct-lite-android 仅在 YouTubePlayerFragment 中使用 ApiKey,但在获取一些 youtube 数据时不使用 ( channel 等)。所以..这是不公平的。
有人能告诉我做错了什么吗?谢谢。
最佳答案
这是我的解决方案:
打开google developers console
转到凭据/OAuth 同意屏幕。填写向用户显示的产品名称。也把它放在这里:
service = new YouTube.Builder(transport, factory, credential)
.setApplicationName(/*Product name shown to users*/)
下一步 - 注册您的应用。转到 Credentials/credentials 并单击按钮 Create credentials 然后选择 OAuth Client ID 然后选择 Android 并将您的在那里应用 SHA1。
最后一步 - 创建 api key 。在 Credentials/credentials 中单击按钮 Create credentials 并选择 API key,然后选择 Browser key。然后在这里使用这个生成的浏览器 key 。
private val ApiKey = "/*Browser key*/"
关于android - YouTube.Builder 的正确使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36582274/
是否有任何解决方案来禁用右键单击选项并从 Youtube 视频中删除右下角水印 Logo ?我在搜索 GOOGLE 后尝试过。谁能告诉我? 谢谢你。 最佳答案 试试 modestbranding范围:
我想使用 YouTube API (v3) 来启用仅音乐轨道的搜索(没有猫或藤蔓或任何其他非音乐视频)。我查看了 API Explorer 和文档以获取有关该问题的任何指示,但找不到任何有用的信息。
我需要为网站使用YouTube视频缩略图的maxresdefault版本,但是在开发实现此目的的代码后,我发现并非所有视频都具有这些缩略图,尽管这些视频均为1080p。 有没有一种方法可以自动为我的所
我想通过“iframe”嵌入youtube视频,但YouTube在我国禁止使用,建议我如何在我的网站上嵌入视频! [1]:以下图片显示了在我的国家/地区无法访问youtube 最佳答案 该视频将被嵌入
我正在为myBB使用一个名为Profile Music Plugin的插件,可以在此处找到http://community.mybb.com/mods.php?action=view&pid=75 我
Youtube IFRAME API中是否有可以执行命令的功能,例如在播放的视频结尾处打开网站? (我相信有一个功能可以在旧的Java API下执行此操作,但该功能已于去年弃用。) 最佳答案 您可以引
我试图在Videos.insert和Videos.update查询中设置3d尺寸标志。但是标志不会改变。 更新查询示例: 请求: PUT https://www.googleapis.com/yout
使用此获取评论 评论主题:列表 GET https://www.googleapis.com/youtube/v3/commentThreads?part=snippet { "error": {
最近,我尝试使用OEmbed服务通过播放列表查询参数获取视频网址的iframe代码,但是OEmbed为我们提供了与我要求的视频不同的iframe代码。 这是带有播放列表查询参数的视频网址: https
我正在使用此代码: https://www.googleapis.com/youtube/v3/search?q=global+warming&part=id&maxResults=50&key=MY
我有一个LiveBroadcast,并且将来会添加一个scheduledStartTime。据我所知,这次测试不会对LiveBroadcast的整体状态产生影响,即广播是否具有准备就绪/测试的life
YouTube API是否支持在特定时间后关闭浏览器的参数? 这需要使用链接在不同位置共享来推广促销视频。视频播放结束后关闭浏览器。 最佳答案 您可以使用Youtube API监控视频是否播放完毕,然
如果没有表单上的透明面板,YouTube Player将可以正常播放视频,或者可以全屏播放视频,透明面板中有一些图像没有什么特别的。如果我取出透明面板,则YouTube播放器会按需工作,并嵌入到应用程
我正在通过Google进行身份验证,以尝试获取YouTube分析数据,但我的问题是我不知道在查询YouTube时如何向您填充参数 在这里,我正在提供一项新服务:然后尝试查询它 我不确定要在“ids”参
我想添加youtube视频列表,但不添加视频播放器。所以我需要的是 视频标题 视频缩略图 视频时长 我以某种方式设法通过使用此http://img.youtube.com/vi/4wew2uWoARw
我正在使用youtube api和python库gdata 我遵循了文档,但似乎没有出路。 问题是 - How do i get the size of the youtube video fil
使用Youtube API,我如何获得评论或顶过youtube视频的用户ID /处理列表? 提前致谢 最佳答案 在这里,您可以了解如何使用YouTube API v2(v3尚不支持此注释)获取评论:h
我正在为所有相关数据构建一个仪表板(以php为单位),我还想在YouTube“稍后观看”播放列表中显示我的商品数量。 我知道无法使用YouTube API来解决这个问题,但是也许有人想出一种解决方法?
我尝试使用YouTube API,但存在引号问题。 SearchResource.ListRequest searchListRequest = yt.Search.List("sni
我想为我的Android应用程序的用户构建视频推荐器。我有Google OAuth可以登录我的应用程序。我可以获取有关我的应用程序用户在YouTube上观看的视频的数据吗? 最佳答案 v3 API分为
我是一名优秀的程序员,十分优秀!