ユーザーブロマガは2021年10月7日(予定)をもちましてサービスを終了します

  • twichの配信を録画する方法

    2021-03-08 21:31
    FFmpegがすでに導入済みの前提です。
    ・アーカイブ
     ・映像
      1. 開発者ツールのNetworkタブを開いて録画したいアーカイブのページを開く
      2. 一覧から.m3u8のものを選んでRequest URLをコピーする(.m3u8が2つあるが片方は画質が悪いので注意)

      3. FFmpegで録画する。最低限のコマンドは下記。
    ffmpeg -i 動画URL -c copy 保存名.mp4

     ・コメント
      今のところ現実的な取得方法がない。コメントの仕様のメモ書きはこちら
    ・ライブ配信
     ・映像
      URLの取得方法はアーカイブの時と同じ。

     ・コメント
      1. Lime chatを開く(導入方法は後述)
      2. 「サーバに接続」を押す(開いたら自動で接続するかも)
      3. 配信が終わったらメニューの「編集」から「ログをファイルに保存」を選んで保存する
      4. さきゅばすで合成する場合はそれ用に変換が必要(変換は以前書いた記事が参考になるかもです)
      ※ 接続時より前のコメントは取得できない
      ※ スタンプの場合は画像ではなくスタンプ名になる
      ※ サブスクした等の通知は記録されない


    (余談)
    ニコニコと違ってツールがないので、コメントありの動画が欲しい場合はキャプ録りが可能ならそれが一番楽だと思います。絵文字とかスタンプも見たままに録画できますし。
    ・Lime chat導入方法
    結構古いソフトですがWindows10でも動きました。

    1. 公式HPからからDLする
    2. 起動したら「最低限の設定ではじめる」で次へ
    3. ニックネームは適当でOK。「接続するIRCサーバ」には「irc.chat.twitch.tv」と入力して次へ。
    4. 「接続したときに入るチャンネル」には「#配信者のアカウントID」を入力(#も必要)して次へ
    5. 初期設定が終わるので、メニューの「サーバ」から「サーバのプロパティ」を開く
    6. ここにアクセスしてクライアント用パスワードを発行する(詳しくはこちら)
    7. 「サーバパスワードを使う」にチェックを入れて先ほどのパスワードを入力する
    8. その下の「文字コード」がUTF-8になってなかったらそれに変えてOKで閉じる
    9. メニューの「設定」から「設定」を開く
    10. 「表示テーマ」の「メッセージ」を選択
    11. 時刻を秒ありにする(vpos変換する時に必要)
    12. 設定画面を閉じて、左上のアイコンを押して接続する
    13. チャットが流れてくれば成功









  • 広告
  • ツイッチのアーカイブとコメントを取得できないか見てみた

    2021-02-23 00:54
    清書したものはこちら

    ニコニコ以外の配信サイトってツールが少ないのが録画する身としては困りもの。

    今回はツイッチを見てみます。
    生放送はしんどいのでアーカイブのページ開いて開発者ツールを開きます。

    動画
    動画といえば.m3u8です。
    2つ叩いてるけどもう1つはパスに360pがあるのでこっちでよさそう。


    このURLをffmpegで叩けば取得できそう。
    ffmpegは録画ツール入れたことあるなら一緒にDLされてるはずです。
    livedlとか(仮とかさきゅばすとか。

    あ、ffmpegはコマンドラインから起動してくださいね。
    最低限のコマンドはこちら↓

    ffmpeg -i 動画URL -c copy 保存名.mp4

    オプションは無限にあるので、お好みでカスタマイズしてください。

    うん、いけました。アーカイブの保存はこれで問題なさそう。
    ライブもこれでいけるのかしら。

    コメント
    コメントはこれっぽい

    試しに叩いてみたらclient_idが必須でした。client_idはrequest headeerにあります。cURLとかPostmanとか使わないとですね。

    中身はこんな感じ↓

    1回で60弱のコメントしかとれないんですね…

    nextの値は次のコメント群を取得するのに必要。
    2回目以降はこんな感じで取得していく。
    人力じゃちょっとつらいですね…ニコ生はどうだったっけか。


    ついでにスタンプも気になったので。
    スタンプの場合はmessageの中にemoticonsが文字数分出現する。

    で、idをもとにスタンプ取得APIを叩きにいってるみたいでした。


    動画とコメントを合成する時にスタンプの扱いをどうするか難しいですね。
    一応ffmpeg自体は動画と画像の合成はできたはずなので、ツールを作ればできなくはなさそうですが…

    とりあえず今日はここまで。
  • プンレクからコメントを取得してxmlファイルを作成する

    2019-01-14 20:081
    プンレクからコメントを取得する必要があったので、API使って取得してみました。
    取得したコメントはxml形式じゃなかったので変換するとこまで、備忘録も兼ねて。


    こちらを参考にさせていただきました。
    https://ch.nicovideo.jp/takeshinge/blomaga/ar1198271


    まず、F12押して開発者ツールを開き、ネットワークタブを選択します。
    次に、放送ページを開くと、赤枠で囲ったように「chats?from_created=...」ってのが出てくるのでクリックすると右側に詳細が表示されます。
    to_createdは使いません。from_createdです。


    詳細の一番上に「Request URL」って項目があります。これがこの枠のコメントを取得できるURLです。
    https://public.openrec.tv/external/api/v5/movies/枠のID/chats?from_created_at=2019-01-13T12:54:36.000Z
    from_created_atの日時以降のコメントを一定数取得します。
    今取得したURLは放送開始時の日時が指定されているのでアクセスすると放送開始時からのコメントを取得できます。
    (APIから取得する際は、F5長押しなどで短時間での大量アクセス(1秒間に数百回とか)をしないようにご注意ください。
    鯖落ちの原因になり、法律で罰せられる可能性があります。)


    放送開始時の時間は後々vposに変える時に必要になるのでメモしておきましょう。

    コメントが取得できたら全部コピーしてエディタなどに貼り付けます。


    ----------
    ※一回で全取得できなかった場合
    取得した最後のコメントの「posted_at」の時刻を確認します。
    "posted_at":"2019-01-13T22:20:06+09:00"
    最後のコメント時刻の1秒後をfrom_created_atで指定すれば次のコメントを取得できるわけです。
    ちょっとめんどくさいことに、posted_atはJST、from_created_atはUTCになってるので、最後のコメント時刻の9時間前の1秒後を指定してください。

    取得したら一番外側の大かっこ[]がいらなので、それを除いた中身をコピーして、先ほど貼り付けたコメントの一番最後の中かっこ閉じの手前にカンマを入れてから貼り付けます。

    これを繰り返せば全コメント取得できます。
    ----------


    次に取得したコメントをxml形式に直していきます。
    まずコメントごとに改行します。

    置換可能なエディタで先ほど保存したtxtファイルを開きます。
    正規表現を使えるようにして、検索欄に「"capture":null\},」、置換欄に「"capture":null\},\n」と入力して全置換します。(コメントが多いと処理に時間かかります)

    置換出来たら全部コピーしてエクセルに貼り付けます。
    ここからいらないデータを削ぎ落します。

    ちなみにこの時点で絵文字は□□と表示されます。(どうせこの後さきゅばす変換で同じことになるので今回は無視)

    まずはデータごとに列ごとに区切ります。
    データタブの区切り位置からウィザードを開いてダブルクォーテーションで区切るようにします。


    コメントと時刻以外は削除してください。

    次に時刻をvposに変えます。
    コメント時刻 - 放送開始時刻 × 100 でvposに変換できます。
    このままだとエクセルが計算できないので形式を変えます。

    まず1行目に放送開始時刻を挿入しておきます。
    続いて隣の列に数式を入力します。
    「=DATEVALUE(MIDB(B1,1,10))+TIMEVALUE(MIDB(B1,12,8))」
    次にセルの書式設定からユーザー定義を選択して「yyyy/m/d h:mm:ss」と入力すれば完了です。あとはセルの右下にカーソルをやってカーソルが+になったら下までドラッグしてオートフィル処理します。


    うまく変換できたらこうなるはずです。

    では、vposに変換します。

    D2に数式「=(C2-$C$1)*100」と入力します$C$1は絶対参照です。オートフィル処理したときもC1を参照し続けるようにします。(セル選択した後F4で絶対参照になります)

    セルの書式設定はユーザー定義で「[s]」にします。大かっこで囲むことで60秒超えても繰り上がらなくなります。


    上手くいったらまた下までオートフィル処理します。


    このまま余計なB、C列消すとD列もエラーになるのでE列に値だけコピーします。
    D列をコピーしたらE列を右クリして形式を選択して貼り付けを選択、値を選びます。
    そのあと書式設定でユーザー定義を「[s]」にします。

    B~D列消したらひとまず完了です。

    後はxml形式に成形するだけです。
    <chat vpos="
    " no="
    "></chat>


    こんな感じで作ります。
    noがないとコメントファイルとして認識できないので、忘れずに入れます。

    最後に先頭行に

    <?xml version="1.0" encoding="UTF-8"?>
    <packet>

    を追加して、最終行に
    </packet>
    を追加して、全てコピーしてエディタに貼り付けます。

    すると、セルとの区切りで空白が挿入されてるので置換でどうにか取り除いて、xml形式で保存すれば完成です!


    お疲れさまでした