歌謡ロックbotのリンク切れを直しています。歌謡ロックbotはひたすらYouTubeのPVを流すだけのアカウントで、予め登録した曲のリストから一定時間おきに投稿します。
以前はリンク切れカッターが使えたのですが、YouTubeの仕様が変わったのか、このツールでは判定できなくなりました。
調べてみたところ、YouTubeのAPIを使ってリンク切れをチェックできると書いてあったので、自分で調べてみました。
自サイトに貼りつけたYOUTUBE動画が削除されているか確認する方.. - 人力検索はてな
入力
0.8秒と衝撃。 | 「21世紀の自殺者」 | youtu.be/ru4xoKsm9lo |
0.8秒と衝撃。 | 「POSTMAN JOHN」 | youtu.be/dHRMezlbmiE |
0.8秒と衝撃。 | 「町蔵・町子・破壊」 | youtu.be/0NQUAHcecRU |
13*SQUAD | 「陽炎」 | youtu.be/TAHY2-2VwhA |
9mm Parabellum Bullet | 「Black Market Blues」 | youtu.be/mNFHg5vQ2pU |
9mm Parabellum Bullet | 「Finder」 | youtu.be/qIq20zSpanA |
出力
artist | track | url | open | |
0 | ?0.8秒と衝撃。 | 「21世紀の自殺者」 | youtu.be/ru4xoKsm9lo | 1 |
1 | 0.8秒と衝撃。 | 「POSTMAN JOHN」 | youtu.be/dHRMezlbmiE | 1 |
2 | 0.8秒と衝撃。 | 「町蔵・町子・破壊」 | youtu.be/0NQUAHcecRU | 1 |
3 | 13*SQUAD | 「陽炎」 | youtu.be/TAHY2-2VwhA | 1 |
4 | 9mm Parabellum Bullet | 「Black Market Blues」 | youtu.be/mNFHg5vQ2pU | 1 |
5 | 9mm Parabellum Bullet | 「Finder」 | youtu.be/qIq20zSpanA | 0 |
6 | 9mm Parabellum Bullet | 「Living Dying Message」 | youtu.be/nWgrkY-fCyU | 1 |
7 | 9mm Parabellum Bullet | 「Wanderland」 | youtu.be/pA2Xw4C7gcw | 1 |
import pandas as pd
#ファイル読み込み
tweet = pd.read_table("kayourock/kayourock.tsv",header=None)
tweet.columns = ["artist", "track", "url"]
#YouTubeのURLを入れれば判定結果を返してくれる関数
def urlchecker(url):
import urllib
url = url.replace("youtu.be/","http://gdata.youtube.com/feeds/api/videos/")
f = urllib.urlopen(url)
url_open = f.read()
#APIがちゃんとxmlを返す=動画が存在するなら1、返さないなら0
if url_open.startswith("""<?xml version='1.0'"""):
rt = 1
else:
rt = 0
return rt
#データフレームに判定結果を追加
temp = list()
for url in tweet["url"]:
temp.append(urlchecker(url))
tweet["open"] = temp
#ファイル出力
tweet.to_csv("kayourock/test.tsv",sep="\t")
今では自動ツイートにEasybotterというPHPコードを拝借して自動投稿してますが、がんばれば「リンク切れしたURLは投稿しない」っていうクライアントも作れそうですね。