Open7
Twitterスペースをアーカイブ
$ twspace-dl -i スペースのURL
# ==> (アカウント名)スペースのタイトル-スペースのID.m4a
スペースの録音をm4a
形式でダウンロードできるツール
- スペース作成時に録音を有効にしておく(必要があると思う)
ダウンロード時のファイル名のデフォルト値
DEFAULT_FNAME_FORMAT = "(%(creator_name)s)%(title)s-%(id)s"
-
-o FORMAT_STR
オプションで変更できる -
%(title)s
: スペースのタイトル -
%(id)s
: スペースのID -
%(start_date)s
: スペースの開始時刻 -
%(creator_name)s
: ホストの名前 -
%(creator_screen_name)s
: ホストの名前(アカウント名) -
%(url)s
: スペースのURL -
%(creator_id)s
: ホストのID
おすすめフォーマット?
-
%(start_date)s_%(creator_screen_name)s_%(id)s
がシンプルでいいかもしれない
$ python3
>>> from TwitterSpaces2Text.Extractor import Extractor
>>> e = Extractor()
>>> e.getCaption("スペースのID")
スペースの自動文字起こしのテキストを取得するツール
-
時刻 アカウント名 発言の書き起こし
が出力される- 時刻は
UTC+0
で表示される。+9
すると日本の時刻になる - アカウントごとに文字起こしされるのがとてもよい
- 時刻は
- 結果は標準出力のみ。ターミナルの表示自体を保存する必要がある
-
getCaption
の返り値はNone
-
requests
, json
, time
のモジュールを使っているだけ
キャプションを取ってきている部分(のメインっぽいところ)
raw_data = self.getCurrentCaption(cursor)
getCurrentCaptionが返してくるもの
requests.post(
'https://chatman-replay-eu-central-1.pscp.tv/chatapi/v1/history',
json={"access_token":self.access_token, "cursor":cursor, "limit":1000, "since":None, "quick_get":True}).json()
-
access_token
はchat_token
が必要 - ここでPOSTしているAPIはなに?
setAccessToken(self)
self.access_token = requests.post('https://proxsee.pscp.tv/api/v2/accessChatPublic',
json = {"chat_token":self.chat_token}).json()['access_token']
-
chat_token
はmedia_key
などが必要 -
live_video_stream
というTwitter API があるっぽい
setChatToken(self)
self.chat_token = requests.get('https://twitter.com/i/api/1.1/live_video_stream/status/'+self.media_key+'?client=web&use_syndication_guest_id=false&cookie_set_host=twitter.com',
headers={"x-guest-token":self.guest_token,"Authorization":self.bearer_token}).json()['chatToken']