YouTubeAPI를 사용하여 채널의 동영상 정보를 새로운 순서로 가져옵니다.

만든 것




새로운 순서로 동영상 목록을 얻을 수 있었습니다.
죄송합니다, 개인의 취미가 들어가 버리기 때문에 무엇을 취했는지는 칠해 주시고 있습니다.
한정 공개의 것이 아니기 때문에 아마 괜찮습니다 w

왜 할까



이번 시도로 취미의 채널로 정보를 취할 수 있을까를 해 보았습니다만,
실은 업무에 살려고 하고 있습니다.
동영상의 업로드 정보를 메일로 받고, YouTube의 다른 일에 사용하고 있었습니다.
하지만, 8월당 사양 변경으로 메일을 보낼 수 없게 되었기 때문에,
자동으로 어떻게든 정보를 취득할 수 없을까 생각하고 있어 딱 좋은 기회가 되었습니다.

아웃풋처가 무엇으로 평문의 메시지가 되어 있는가 하면,
단지 단지 예쁘게 보내는 방법을 몰랐기 때문입니다!
업무에서는 자신의 Teams에 깨끗이 보낼 수 있도록 하고 싶은 곳입니다.

조심하는 곳



사전에 YouTube Data API의 활성화가 필요!
⇒ GAS에서 사용할 수 있다는 「유효화」라고 YouTubeAPI를 사용할 때의 인증을 할 필요가 있다.

YouTube Data API에는 취득 건수에는 제한이 있다.

앞으로 고쳐 가고 싶은 포인트



1. 취득 건수의 변경 상한이 있습니다만 좀 더 수를 늘립니다.
2. 페이지수의 제어수를 늘렸을 때에 다음 페이지에의 토큰의 설정인것도 잘하고 싶습니다.
3. 출력처를 바꾸는 스프레드 시트로 한다.
4.3을 근거로 스프레드시트에 갱신이 걸리면, 통지하도록(듯이) 한다.
5. 소식을 깨끗한 메시지로 한다.
6. 업로드된 분만 취득하도록 한다.

환경



Google Apps Script
YouTube Data API v3

출처


function getYouTubeMovies() {
  // 処理を送り先Webhook URL
  const URL = 'webhookURL';

  // YouTubeの動画リストを取得
  var y_res = YouTube.Search.list('id,snippet', {
    maxResults: 5, 
    channelId: 'チャンネルID',
    order: "date",  // 取得順序は、最新動画順にしてある
    type: "video"
  })   
  console.log(y_res);
  // 動画の情報が欲しかったので動画リストだけ保存
  var movie_list = y_res.items;

  // レスポンスのJSONを分解してテキストに突っ込む。たぶんスプレッドシートに記入するならそのままかける。
  let text = "";
  for(var i = 0; i < movie_list.length; i++){
    var title = movie_list[i].snippet.title;
    var p_time = movie_list[i].snippet.publishTime;
    var video_id = movie_list[i].id.videoId;
    text = text + "title:" + title +  ",uldate:" + p_time +  ",url:https://www.youtube.com/watch?v=" + video_id + "; ";

  }
  // POSTする中身
  const teamsPayload = {
    'title': 'YouTube最新動画5個',
    'text': text,
  };

  // UrlFetchAppのオプション
  const params = {
    'method': 'POST',
    'contentType': 'application/json',
    'payload' : JSON.stringify(teamsPayload),
  };
  console.log(params)
  // HTTPリクエスト送信
  const res = UrlFetchApp.fetch(URL, params);
}

좋은 웹페이지 즐겨찾기