Youtubeチャンネル検索サービス作成しました
こんにちは、今回は私が作成したYoutubeチャンネル検索サービスをご紹介します。
これはYoutubeのチャンネルを検索してチャンネル情報を表示してくれるサービスになります。開発の経緯はYou Tubeの動画を見ててもわかりにくかったりどれだけの情報があるのか分からないなど思ったことはないでしょうか
そういう時に対処できるようにこのサービスを開発しました。
Python、Flask、YoutubeAPIを使用して開発しております。
まだ開発途中なのであまり言いませんがもっと機能を追加して公開して行きたいと考えています。
下記に一部のソースコードを記載しております。少しでも開発者の方にお役立てできればと思っています。コピペして頂いて構いません。
下記のソースコードを実行するとこのような画面になります。
これはFlaskで実行しております。
API_KEY = '指定のAPIキー'
YOUTUBE_API_SERVICE_NAME = 'youtube'
YOUTUBE_API_VERSION = 'v3'
SEARCH_TEXT = text
youtube = build(
YOUTUBE_API_SERVICE_NAME,
YOUTUBE_API_VERSION,
developerKey=API_KEY
)
response = youtube.search().list(q=SEARCH_TEXT, part='id,snippet', maxResults=1).execute()
lists = []
for item in response.get('items', []):
for item in response.get('items', []):
if item['id']['kind'] != 'youtube#channel':
continue
print('*' * 10)
print(json.dumps(item, indent=2, ensure_ascii=False))
print("タイトル:" + json.dumps(item["snippet"]["title"], indent=2, ensure_ascii=False))
print("description:" + json.dumps(item["snippet"]["description"], indent=2, ensure_ascii=False))
print("チャンネルID:" + json.dumps(item["snippet"]["channelId"], indent=2, ensure_ascii=False))
# print(json.dumps(item["snippet"]["thumbnails"]["high"]["url"], indent=2, ensure_ascii=False))
print('*' * 10)
#タイトル
youtubetitle=json.dumps(item["snippet"]["title"], indent=2, ensure_ascii=False)
yt=youtubetitle.strip('"')
#Description
youtubeDescription=json.dumps(item["snippet"]["description"], indent=2, ensure_ascii=False)
ydes=youtubeDescription.strip('"')
#サムネイル
thmna=json.dumps(item["snippet"]["thumbnails"]["high"]["url"], indent=2, ensure_ascii=False)
yts = thmna.strip('"')
# チャンネルID
ytid = json.dumps(item["snippet"]["channelId"], indent=2, ensure_ascii=False)
ytids = ytid.strip('"')
search_response = youtube.channels().list(
part='snippet,statistics',
id=ytids,
).execute()
#登録者
tourokusha='登録者数:', search_response['items'][0]['statistics']['subscriberCount'], '人'
#投稿動画数
toukoudouga='投稿動画数:', search_response['items'][0]['statistics']['videoCount'], '本'
response = youtube.search().list(
# 検索部分を指定
part="snippet",
# チャンネルID
channelId=ytids,
# 検索数
maxResults=1,
# 検索順(今回は日付)
order="date"
).execute()
for vdata in response['items']:
count_data = \
youtube.videos().list(part='statistics', id=vdata['id']['videoId']).execute()['items'][0]['statistics']
likes=count_data['viewCount']
#高評価
likes1=count_data['likeCount']
#コメント数
likes2=count_data['commentCount']
#公開日
thmna = json.dumps(item["snippet"]["publishedAt"], indent=2, ensure_ascii=False)
ykoukai = thmna.strip('"')
#投稿日、動画名
print('投稿日:', vdata['snippet']['publishedAt'])
print('動画名:', vdata['snippet']['title'])