【Python3の基本】YouTube概要欄をプログラミングで自動編集して必要なリンクを作成する方法 | Apple iOS 開発 YouTube セミナー 50

 

Python3系


- YouTube API の紹介
- Pythonの基本ライブラリの動作確認
- 番組概要欄をプログラミングで自動書きだし


YouTube説明欄をPythonで自動編集して必要なURLなどを挿入するプログラミングの作り方


「以下は動画のハイライトです。」

今回は少しiOS開発から少し外れます。ただ、YouTubeのAPIはiOSアプリにも応用することができますのでこの知識は持っていて損はありません。

今回紹介するPythonのライブラリは以下です。


import pandas
import csv
import sys



PandasはAIなどのビッグデータ処理にもよく使われるものですが、CSVなどのデータ処理にとても相性がよくいろいろな場面で応用のきくライブラリです。CSVは配列を作るのが便利です。sysはコマンドの実行時に引数を指定して変数を渡すことができるのでこちらも重宝しております。

まずはsysの使い方からです。


import sys
args = sys.argv
print(str(args[1]))

lineCode = int(args[1])



こんな感じで変数lineCodeへ変数を代入することができます。Pythonで使う場合は取り出し時に型指定をすることを忘れないようにしてください。

一方、pandasは以下のように使います。


import pandas as pd

df = pd.read_csv('jp-urlList/cq.csv', sep=',')
print(df.head(lineCode))

videos = df.head(lineCode)
videos.to_csv('ex.csv', index=None)



read_csvにより所定のパスからCSVファイルを読み込むことができます。python内で様々なデータ書式でビジュアル化することができます。

to_csvの関数ではpandasのデータフレームからcsvに変換することができます。ここではファイル名ex.csvとして吐き出すように設計しております。

YouTubeへアクセスして所定のデータをpandas用に整形するには以下のコマンドが使えます。


while True:
 time.sleep(10)
 response = requests.get(url % (API_KEY, CHANNEL_ID))
 if response.status_code != 200:
  print('Error')
  break
 result = response.json()
 infos.extend([
  [item['id']['videoId'], item['snippet']['title'],   item['snippet']['publishedAt']]
  for item in result['items'] if item['id']['kind'] == 'youtube#video'
 ])

 if 'nextPageToken' in result.keys():
  if 'pageToken' in url:
   url = url.split('&pageToken')[0]
 url += f'&pageToken={result["nextPageToken"]}'
 else:
  print('Finished')
  break



これにより最終的に変数infosへデータが格納されます。

最後にcsv化したデータを元にpythonでテキスト化して番組の概要欄に記入する内容をプログラミングで書き出します。


s = '概要欄' + "\n\n"

with open('ex.csv', 'r') as file:
 reader = csv.reader(file)
i = 0
for row in reader:
 i += 1
 if (i !=1):
  res = '黒板ライブ' in row[1]
  if res == False:
   titleStr = row[1].split('|')
   timeStr = row[2].split('T')
   s += timeStr[0] + "\n" + titleStr[0] +"\n" + "https://youtu.be/" + row[0]
   s += "\n\n"

with open('urlList.txt', mode='w') as f:
 f.write(s)



改行コードは\nで行うことができます。csvの各セルには不要な文字列などもありますので適当な部分で切ったり、貼り付けたりして文字列を作成します。

詳細は動画で解説します。

ソースコード入手法はYouTubeのコメント欄に記載します。

目次へ戻る


 

2020年03月06日