Lista de scripts:

Pesquisa de vídeos por palavras-chave

// Inclua os termos ou palavras-chave no parâmetro "q:". Utilize a pesquisa booleana conforme indicado na documentação:
// <https://developers.google.com/youtube/v3/docs/search/list#apps-script>

function searchByKeyword() {
  try {
const results = YouTube.Search.list('id,snippet', {
      q: 'milei | lula',
      maxResults: 5,
      publishedAfter: '2023-09-01T00:00:00Z',
    publishedBefore: '2023-10-01T00:00:00Z',
    order: 'viewCount'
    });
    if (results === null) {
      console.log('Unable to search videos');
      return;
    }

// Gerar os dados na Spreadsheet/Planilha.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

// Ir para a aba ativa na Spreadsheet.
var sheet = spreadsheet.getActiveSheet();

// Criar um cabeçalho na primeira linha.
sheet.appendRow(["Video ID", "Title", "Video URL", "Publication Date", "Channel name", "Channel ID", "Category", "Live video?", "Description", "Thubnails (Default)", "Thubmnails (High)" ]);

// Escrever os resultados na aba.
for (var i = 0; i < results.items.length; i++) {
  var video = results.items[i];

  var row = [video.id.videoId, video.snippet.title, `https://www.youtube.com/watch?v=${video.id.videoId}`, video.snippet.publishedAt, video.snippet.channelTitle, video.snippet.channelId, video.id.kind, video.snippet.liveBroadcastContent, video.snippet.description, video.snippet.thumbnails.default.url, video.snippet.thumbnails.high.url ];

  // Adicionar a linha à Spreadsheet.
  sheet.appendRow(row);
}
  } catch (err) {
    console.log('Failed with an error %s', err.message);
  }
}

Gerar metadados de vídeos

/** Antes de executar este script em Apps Script, confirme que a Planilha/Spreadsheet contenha as seguintes colunas: "Video Link"	"Video Title"	"Publish Date"	"Channel"	"Views"	"Comments/Replies"	"Likes" */

// Este script usa uma solução do YouTube documentada no seguinte repositório e blog. Para adicionar todas as funções, consulte a documentação:
// Repositório:
// > <https://github.com/aliciawilliams/youtube-tracker> 
// Publicação de blog:
// > <https://developers.google.com/apps-script/samples/automations/youtube-tracker>

// Relaciona os nomes das colunas da Spreadsheet com as variáveis. Se os nomes das colunas mudarem, atualize estas variáveis.
const COLUMN_NAME = {
VIDEO: 'Video Link',
TITLE: 'Video Title',
};

//Obtém os detalhes e as estatísticas dos vídeos do YouTube de todas as URLs de vídeos listadas na coluna "Video Link" de cada Spreadsheet.
function markVideos() { let ss = SpreadsheetApp.getActiveSpreadsheet(); let sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();

// Executa o processo para cada aba da Spreadsheet.
sheets.forEach(function(dataSheet) {
let tabName = dataSheet.getName();
let range = dataSheet.getDataRange();
let numRows = range.getNumRows();
let rows = range.getValues();
let headerRow = rows[0];

// Encontra os índices das colunas.
let videoColumnIdx = headerRow.indexOf(COLUMN_NAME.VIDEO);
let titleColumnIdx = headerRow.indexOf(COLUMN_NAME.TITLE);

// Processa cada linha da Spreadsheet.
for (let i = 1; i < numRows; ++i) {
  let row = rows[i];

// Extrai o ID do vídeo.
 let videoId = extractVideoIdFromUrl(row[videoColumnIdx]);

// Processa cada linha que contém um ID de vídeo.
 if (!videoId) {
    continue;
 }

// Executa a função getVideoDetails e extrai os dados solicitados do vídeo.
 let detailsResponse = getVideoDetails(videoId);
  let title = detailsResponse.items[0].snippet.title;
  let publishDate = detailsResponse.items[0].snippet.publishedAt;
  let views = detailsResponse.items[0].statistics.viewCount;
  let likes = detailsResponse.items[0].statistics.likeCount;
  let comments = detailsResponse.items[0].statistics.commentCount;
  let channel = detailsResponse.items[0].snippet.channelTitle;

// Coleta os detalhes do título, data de publicação, canal, visualizações, comentários e curtidas, e os adiciona na aba.
 let detailsRow = [title, publishDate, channel, views, comments, likes];
  dataSheet.getRange(i + 1, titleColumnIdx + 1, 1, 6).setValues([detailsRow]);
}
});
}

//Obtém os detalhes dos vídeos do YouTube usando o serviço avançado do YouTube. 
function getVideoDetails(videoId) { let part = "snippet,statistics"; let response = YouTube.Videos.list(part, {'id': videoId}); return response; }

//Extrai o ID do vídeo do YouTube da URL. (h/t <https://stackoverflow.com/a/3452617>) 
function extractVideoIdFromUrl(url) { let videoId = url.split('v=')[1]; let ampersandPosition = videoId.indexOf('&'); if (ampersandPosition != -1) { videoId = videoId.substring(0, ampersandPosition); } return videoId; }

Outros scripts para baixar comentários e respostas

Baixar comentários e respostas

Baixar apenas comentários, sem respostas