作業配信をする。
昨日の続きを読もうと思っている。classの話あたりから。
YouTubeのチャンネルのカスタムURLが、条件を満たしてから10日後に使えるようになったと言っている人を見た。5月19日にまた確認したいところ。
OBSのスクリプトファイルを試しに書いてみた。
まず、スクリプトは次のディレクトリに置かれている。この場所は、OBSのスクリプト設定画面を選び、適当なスクリプトのコンテキストメニューからファイルの場所を開くことでも確認できる。
C:\Program Files\obs-studio\data\obs-plugins\frontend-tools\scripts
これらのスクリプトファイルは、変更に管理者権限が必要である。適当にスクリプトファイルをコピーし、hello.luaをつくる。この際にWindowsによって管理者権限の確認が求められる。
Windowでは、hello.luaを右クリックし、プロパティ > セキュリティ > 詳細設定から、ファイルの所有者をAdministratorから自分のユーザーに変更する。自分の場合、r7kamというユーザ名なので、これを入力する。入力時に選択肢とかは一切出ないので、ユーザ名を覚えておく必要があり分かりづらい。
変更したら今度は、プロパティ > セキュリティ > 編集から、追加した所有者に対して変更権限を与える。今回の例ではフルコントロールを与えた。
これで、スクリプトファイル hello.lua を変更するたびにいちいち管理者権限の確認を求められなくて済む。
次の記事を参考に設定した。
OBSのスクリプトの追加、スクリプトログの確認はこの辺からやる。
print("Hello")
これだけ書いたスクリプトを動かすと、こうなる。
When writing code for OBS, a very time-consuming task is to browse the huge OBS API to determine which functions or combinations of functions are required to reach OBS data. https://github.com/obsproject/obs-studio/wiki/Scripting-Tutorial-Source-Shake
tashikani... 🦀
今回OBSスクリプトを書いてやりたいことをまとめる。
MUST:
- 00分になったらworkシーンへ遷移
- 50分になったらbreakシーンへ遷移
SHOULD:
- チャプター分割を自動化したいので、日時を記憶してどこかにテキストを書き出し
- 配信開始時
- 配信終了時
- シーン遷移時
Lua/Pythonを利用しなくても、browser sourceでもある程度のことは可能。逆にUIを利用するならこちらの方がやりやすい可能性もある。テキストオブジェクトではなくHTMLでUIを提供できるため。
browser sourceでもチャプター用の文字列も取得こそできそうだけど、ファイルへの書き込みとかは多分できなさそうに推測しているので、文字列をやり取り手段が無いかも。
miyaokaさんが、チャプター書き出しのLuaスクリプトを書いて紹介してくれた。これはoutput.txtに書き出すという仕組みらしい。こういうので良いんだよ感ありますね。何とかJavaScriptでどこかに書き出せないものか… requestbin とかでも良いんで…
browser sourceで実現できる旨味は、インストールの手間が無い (URL教えるだけ) なところ。
download属性付きのフォームを用意してJavaScriptでクリックさせることで、テキストファイルをダウンロードさせる、という作戦でいけるかも?
ブラウザソースを試しに配置する用のリポジトリをつくった。gh-pagesブランチにHTMLを適当に置いて使う。
ブラウザソースからファイルをダウンロードさせる実験をしたがダメだった。
ファイルパスを選択するUIが用意されていたので、これでチャプターの書き込み先ファイルパスを選択できるかも。
GitHub Actionsでジョブ終了時にMarkdownを表示できる新機能が追加されたらしい。便利そう
一応タイマーが表示されてシーンが自動で遷移されるところまではLuaで書けた。
冷静になってみると、チャプター書き出し機能は独立したスクリプト (or プラグイン) として用意しても違和感ないので、シーン遷移 + タイマー表示だけならJavaScriptでブラウザソース使う方が良いかも… URL指定してもらってアクセス権限有効化してもらうだけで済むし…
OBSの起動オプションをいじると、ブラウザソースでconsole.logでのデバッグができるらしい。
SetCurrentScene is only available with 27.2. obsproject/obs-browser#347
OBS 27.2.4で試しているので問題は無いはずだが……
と思ったら、関数名を間違えていた。
次のようにOBSを起動すると、http://localhost:9292/ でDevToolsを開いてブラウザソースのデバッグができる。
/path/to/obs64.exe --remote-debugging-port=9222
動くようになった。
https://r7kamura.github.io/obs-browser-sources/pomodoro.html
次の名前の合計2つのシーンが存在する前提で動作する。
- Work
- Break
次のように動く。
- そのシーンの残り時間を表示する
- 毎時00分にWorkという名前のシーンに遷移する
- 毎時50分にBreakという名前のシーンに遷移する
Atomic Habitsの次の部分が良かった。
世界を消費するだけでなく、自分が世界の設計者となろう
Ctrl+Alt+L で、IssueやPull Requestのtextareaにフォーカスするようにしたら、コメントがすごく捗るようになった。キー自体は余ってたからとりあえずそこにしただけで、何でもいい。
どちらかと言うとコメントは足りない気味なので、もっとチャットみたいにガンガン書き込むべきだと思う。で、思うだけではダメなので、コメントが書かれる仕組みづくりをしっかりしていかないといけない。そのための改善。
gh-diaryに、エディタからIssueにコメントする機能を付けた。