Получение списка названий каналов YouTube - PullRequest
0 голосов
/ 03 марта 2019

Какой хороший способ получить список видео на канале YouTube через API YouTube и PowerShell?

В некоторых каналах есть много видео, и для просмотра их всех достаточно просто пролистать приложение YouTube.

1 Ответ

0 голосов
/ 03 марта 2019

С учетом этих двух функций:

$api_key = 'YOUR API KEY'

function get-channel-uploads ($channel_id)
{
    $result = Invoke-RestMethod `
        "https://www.googleapis.com/youtube/v3/channels?id=$channel_id&key=$api_key&part=contentDetails"

    $result.items[0].contentDetails.relatedPlaylists.uploads
}

function get-playlist-videos ($id)
{
    $items = @()
    $ls = ''

    while ($true)
    {
        if ($ls.nextPageToken -eq $null)
        {
            $ls = Invoke-RestMethod `
                ('https://www.googleapis.com/youtube/v3/playlistItems?playlistId={0}&key={1}&part=snippet&maxResults=50' -f $id, $api_key)

            $items = $items + $ls.items
        }
        else
        {
            $ls = Invoke-RestMethod `
                ('https://www.googleapis.com/youtube/v3/playlistItems?playlistId={0}&key={1}&part=snippet&maxResults=50&pageToken={2}' -f $id, $api_key, $ls.nextPageToken)

            $items = $items + $ls.items
        }

        Write-Host -ForegroundColor Yellow ('totalResults = {0}   Count = {1}' -f $ls.pageInfo.totalResults, $items.Count)

        Start-Sleep -Seconds 1    

        if ($items.Count -ge $ls.pageInfo.totalResults)
        {
            break
        }
    }   

    $items
}

Мы можем получить список видео для канала Джо Рогана:

$items = get-playlist-videos (get-channel-uploads 'UCzQUP1qoWDoEbmsQxvdjxgQ') # Joe Rogan

Будет показан ход поиска:

enter image description here

Теперь мы можем перечислить названия видеороликов:

$items | ForEach-Object { $_.snippet.title }

enter image description here

Показать заголовки, содержащие определенный текст:

$items | ForEach-Object { $_.snippet.title } | Where-Object { $_ -match 'MMA' }

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...