質問: Calc(2, 3) print(ins.Sum()) ```
回答: 最新バージョンの`YouTubeTranscriptApi`の`get_transcript`関数はAPIの説明にあるように辞書を要素とするリストを返します。 まずはこのリストから字幕だけをリストとして抜き出します。 あとはこのリストをファイルとして保存すればよいです。 ``` from youtube_transcript_api import YouTubeTranscriptApi import itertools import sys # video_id video_id = 'zM981s83s-4' # 'CXXdz0Pxcp4' if len(sys.argv) >= 2: video_id = sys.argv[1] # 出力ファイルパス file = 'sub.txt' if len(sys.argv) >= 3: file = sys.argv[2] # 字幕を取得 sub = YouTubeTranscriptApi.get_transcript(video_id, languages=['en','ja']) # 改行で分割しつつリストとして取得 lines = list(itertools.chain.from_iterable([s['text'].split('\n') for s in sub])) with open(file,'w') as f: for l in lines: f.write(l+'\n') # 結果例 """ [音楽] 話し手 1: スマホ代を気にせず 好きなアニメが観たい! オフライン再生なら データ使わず観れる YouTube Premium なら 楽しみが途切れない まずは無料体験 [音楽] [音声なし] """ ``` `PHP`なりの`CGI`で利用したい場合は * 上記コードを`trans.py`なりで保存。 * `CGI`コード上で`python trans.py [ビデオID] [ファイルパス]`なりの引数つきのコマンドをシェル実行。 * 実行後にファイルが保存されているので、`CGI`上で読み込んで`HTML`に加工して返す。 ような流れで良いかと思います。