Python3系
- YouTube API の紹介
- Pythonの基本ライブラリの動作確認
- 番組概要欄をプログラミングで自動書きだし
「以下は動画のハイライトです。」
今回は少し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のコメント欄に記載します。
目次へ戻る