如何通过YouTube的Live API获取流密钥?

时间:2019-09-02 16:21:47

标签: java stream youtube-api youtube-livestreaming-api

我使用自己的编码器流式传输视频。当我流式传输时,我必须继续返回YouTube来更改所选的流式密钥,以使用创建的第一个密钥。如何更改或确保YoutTube API使用原始流密钥而不生成新密钥。

我尝试使用列表,更新和过渡,但是没有响应提供流密钥或允许我更改正在使用的流密钥

        title = getStreamTitle();
        System.out.println("You chose " + title + " for stream title.");

        // Create a snippet with the video stream's title.
        LiveStreamSnippet streamSnippet = new LiveStreamSnippet();
        streamSnippet.setTitle(title);




        // Define the content distribution network settings for the
        // video stream. The settings specify the stream's format and
        // ingestion type. See:
        // https://developers.google.com/youtube/v3/live/docs/liveStreams#cdn
        CdnSettings cdnSettings = new CdnSettings();
        cdnSettings.setFormat("1080p");
        cdnSettings.setIngestionType("rtmp");
        cdnSettings.getIngestionInfo();

        LiveStream stream = new LiveStream();
        stream.setKind("youtube#liveStream");
        stream.setSnippet(streamSnippet);
        stream.setCdn(cdnSettings);


        // Construct and execute the API request to insert the stream.
        YouTube.LiveStreams.Insert liveStreamInsert =
                youtube.liveStreams().insert("snippet,cdn", stream);
        LiveStream returnedStream = liveStreamInsert.execute();

这是我目前正在做的事情,但这会为YouTube广播活动创建新的视频流。我不希望它产生新的流,但是我需要返回密钥。

private static String getStreamTitle() throws IOException {

    String title = "";

    System.out.print("Please enter a stream title: ");
    BufferedReader bReader = new BufferedReader(new InputStreamReader(System.in));
    title = bReader.readLine();

    if (title.length() < 1) {
        // Use "New Stream" as the default title.
        title = "New Stream";
    }
    return title;
}

我希望输出给我一个流密钥,可以将其添加到编码器中,或者可以直接使它使用上一个流,从而使可重用的流密钥保持不变。

1 个答案:

答案 0 :(得分:0)

对于那些还没有看过OP的较新帖子的人,他们将答案发布在了那里,您可以使用以下方法获取信息流密钥:

returnedStream.getCdn().getIngestionInfo().getStreamName();

How can I change the stream my event uses via the YouTube live api?