今回はX(旧 Twitter)をAPI無しで操作することができるPythonのライブラリ、Twikitを紹介します
公式github:https://github.com/d60/twikit
基本的な使い方
最初に以下のコマンドでTwikitをインストールします
pip install twikit
その後以下のコードを実行することでポストすることができます
※USERNAMEとPASSWORDは自身のXにログインするアカウントを指定してください
from twikit import Client
USERNAME = "xxxx"
PASSWORD = "xxxx"
client = Client("ja")
client.login(
auth_info_1 = USERNAME,
password = PASSWORD
)
client.create_tweet("テスト")
他にできること
他にもいくつかできることを紹介します
ログイン
client.login(
auth_info_1 = "xxxx",
password = "xxxx"
)
auth_info_1にはメールアドレスかユーザID(@〇〇の部分)を入力し、passwordにはXにログインする際のパスワードを入力します
ポスト(ツイート)
client.create_tweet(text="ツイート内容")
通常のポストを行います
画像付きのポスト
media_ids = [
client.upload_media("media1.png"),
client.upload_media("media2.jpg"),
]
client.create_tweet(
text="画像ポスト",
media_ids=media_ids
)
client.upload_mediaの引数に画像ファイルのパスを指定し、それを配列に格納。
その配列をcreate_tweetのmedia_idsの引数に渡すことで画像付きのツイートをすることができます
ポスト検索
posts = client.search_tweet("プログラミング", "Latest")
for post in posts:
print("ユーザ名:{}".format(post.user.name))
print("ポスト内容:{}".format(post.text))
client.search_tweetの第一引数には検索したいワードを、第二引数はTop, Latest, Mediaから一つを選択して指定することで検索を行い、結果を取得します
ポスト削除
client.delete_tweet("0123456789")
client.delete_tweetの引数には削除したいポストのID(URL末尾の数字部分)を指定します
ツイート全消し
自身のツイートをTwikitを使って全て消す方法を紹介してます
まとめ
XのAPIは申請が面倒であることに加え有料になってしまい、扱いづらくなっていましたがこのライブラリであればほとんど代用が可能かと思います
実際に自分はConoha VPSでポストする処理を定期実行するようにしたりして使用しています!
今回紹介したこと以外にもできることは多くあるので気になる方は公式のGitHubをご確認ください
質問や不具合等あればコメントで教えてください!
コメント