Open7

Twitterスペースをアーカイブ

shotakahashotakaha

https://github.com/HoloArchivists/twspace-dl

$ twspace-dl -i スペースのURL
# ==> (アカウント名)スペースのタイトル-スペースのID.m4a 

スペースの録音をm4a形式でダウンロードできるツール

  • スペース作成時に録音を有効にしておく(必要があると思う)
shotakahashotakaha

ダウンロード時のファイル名のデフォルト値

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 がシンプルでいいかもしれない
shotakahashotakaha

https://github.com/adwisatya/TwitterSpaces2Text

$ python3
>>> from TwitterSpaces2Text.Extractor import Extractor
>>> e = Extractor()
>>> e.getCaption("スペースのID")

スペースの自動文字起こしのテキストを取得するツール

  • 時刻 アカウント名 発言の書き起こし が出力される
    • 時刻はUTC+0で表示される。+9すると日本の時刻になる
    • アカウントごとに文字起こしされるのがとてもよい
  • 結果は標準出力のみ。ターミナルの表示自体を保存する必要がある
    • getCaptionの返り値はNone
shotakahashotakaha
キャプションを取ってきている部分(のメインっぽいところ)
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()
shotakahashotakaha
  • access_tokenchat_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']
shotakahashotakaha
  • chat_tokenmedia_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']