小编Mik*_*ler的帖子

YouTube API:获取 YouTube 频道的上传播放列表 ID

我正在尝试找出在给定频道的 ChannelID 的情况下获取频道的上传播放列表 ID 的最佳方法。例如对于带有channelID的频道

UC9CuvdOVfMPvKCiwdGKL3cQ

对应的上传playlistID为

UU9CuvdOVfMPvKCiwdGKL3cQ

请注意,第二个字符已从“C”更改为“U”

我可以通过字符串操作来完成此转换,但我很好奇是否有更好、更简单的方法来通过官方 youtube api 查找上传播放列表 ID。

这是一些显示我的问题的 Kotlin 代码:

我可以通过以下 youtube api v3 搜索找到“Game Grumps”频道的 ChannelID:

            val req = youtube.search().list("snippet");
            req.key = {API_KEY}
            req.q = "Game Grumps"
            req.type = "channel"
            val response = req.execute();
Run Code Online (Sandbox Code Playgroud)

生成的通道 ID (response.items[0].snippet.channelId) 为 UC9CuvdOVfMPvKCiwdGKL3cQ

但是当我运行以下命令来尝试获取频道上传的视频时,我必须使用转换后的 ChannelID(以 UU 而不是 UC 开头)

            val req = youtube.PlaylistItems().list("snippet")
            req.playlistId = "UU9CuvdOVfMPvKCiwdGKL3cQ"
            req.key = {API_KEY}
            val response = req .execute()
Run Code Online (Sandbox Code Playgroud)

如果我使用未转换的“UC”channelID,则会收到以下错误:playlistId无法找到使用 requests 参数标识的播放列表。

除了用“U”替换第二个字符之外,还有什么更可靠的方法(例如使用 youtube API)将 ChannelID 转换为 PlaylistID(用于从该频道上传的内容)?

youtube-api android-youtube-api youtube-data-api

4
推荐指数
1
解决办法
3038
查看次数

Flutter:更新同级小部件的状态

如何在Flutter中更新同级小部件的状态?

例如,如果我有一个矩形窗口小部件,则可以通过调用setState()并更改color变量(如下面的“ Turn Green”按钮那样)来从窗口小部件内更改其颜色。但是,说我想要一个在矩形外部的按钮来改变其颜色。我该如何与Rectangle交流该更改其颜色以及更改为哪种颜色的时间?

这是我的示例代码。当用户按下“ Turn Blue”按钮时,我希望矩形变为蓝色,但是我无法从同级窗口小部件访问其状态。

import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Hello Rectangle',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Hello Rectangle'),
        ),
        body: Column(
          children: <Widget>[
            HelloRectangle(),
            FlatButton(
            child: Text('Turn Blue!',
              style: TextStyle(fontSize: 40.0),
              textAlign: TextAlign.center,
            ),
            onPressed: () {
              // How to update state of the Rectangle from here?
            },
          ),
          ]
        ),
      ),
    ),
  );
}

class HelloRectangle extends StatefulWidget {
  @override
  HelloRectangleState createState() {
    return new HelloRectangleState();
  }
}

class …
Run Code Online (Sandbox Code Playgroud)

flutter

4
推荐指数
2
解决办法
3161
查看次数

YouTube API v3 返回截断的观看历史记录

我可以通过 YouTube v3 数据 API 访问我的观看历史记录,但它只返回我最近的 30 个视频(尽管当我在 YouTube.com 上查看观看历史记录时我会看到更多)。

然后当我看另一个视频时,它返回31。当我看另一个视频时,它返回32。如果它可以返回超过30,为什么它最初不返回更多?我知道 API 可能有限制,但为什么从 30 开始然后逐渐增长呢?对于分页来说,确实不应该有限制,对吗?

我一定做错了什么。这是我的代码:

def getWatchHistory(youtube):
    playlistId = getWatchHistoryPlaylistId(youtube)
    videos = retrieveVideos(youtube, playlistId);
    return videos # Only returns 30, 31, 32 videos, etc. though I have many more in my History

def getWatchHistoryPlaylistId(youtube):
    channels_response = youtube.channels().list(
        part="contentDetails",
        mine=True,
    ).execute()

    channel = channels_response["items"][0]

    playlistId = channel["contentDetails"]["relatedPlaylists"]["watchHistory"]
    return playlistId

def retrieveVideos(youtube, playlistId, nextPageToken=None):
    # Search the specified playlist and list all videos
    playlistItems_response = youtube.playlistItems().list(
        part="snippet,contentDetails",
        playlistId=playlistId,
        maxResults=50,
        pageToken=nextPageToken
    ).execute() …
Run Code Online (Sandbox Code Playgroud)

python youtube-api youtube-data-api

3
推荐指数
1
解决办法
3616
查看次数

Android应用程序的发布密钥库位于何处?

我正在按照本教程创建基于回合制的多人游戏:https://developers.google.com/games/services/console/enabling

在"指定客户端ID设置"部分下,他们说要运行:

keytool -list -keystore [path-to-debug-keystore]

这很好,因为他们也不在话下调试密钥库的位置:"在Windows中,调试密钥库可以位于C:\用户[用户名] .android\debug.keystore"

他们还说要运行这个命令:

keytool -list -keystore [path-to-production-keystore]

但他们没有提到发布/生产密钥库的位置.

...它在哪里?

android keystore android-keystore

2
推荐指数
1
解决办法
1811
查看次数

在快速服务器 app.get 中进行异步调用

我正在制作一个 Express 服务器,它将视频从 youtube 播放列表转换为 xml 播客提要。我的 app.get 返回一些生成的 xml:

app.get("/", function(req, res) {
    res.set('Content-Type', 'text/xml');
    return res.send(xml(myXmlContent, { declaration: true }));
})
Run Code Online (Sandbox Code Playgroud)

我需要用一些数据填充 myXmlContent,包括 youtube 播放列表中的视频 ID。我可以使用 youtube API 来获取这些视频 ID,但它不是同步的。它在回调中返回 ID。

在从 app.get 返回之前,我怎样才能等到得到结果?我可能会以错误的方式解决这个问题,因为超时可能是一个问题。关于如何实现依赖异步调用的动态 xml 生成的任何建议?

express

0
推荐指数
1
解决办法
4347
查看次数