Twitchのクリップ作成ボタンの挙動
経緯
ある配信者が配信で住所を漏らした
指摘されてアーカイブはすぐに非公開にされた
後日、配信者の知り合いが件の配信のクリップの住所情報漏えい部分をクリップしているのを発見
緊張走る
寝ぼけたり接触の誤タップでクリップが作成されることもあるという擁護もあった
が、クリップの長さがデフォルト(とされる)の30秒ではなく26秒程度だったため、編集されてるのではないか?とさらに疑念
前提
その人の処断のためにクリップ作成仕様を知りたいわけではない
意図がどうであれクリップした結果暫くの間住所情報が公開されていたわけでとりあえずBANでOK
配信者が判断すればいい
クリップ作成の仕様について技術的に詳しく知りたい
似たような事が起きたときにクリップの仕様を解答できるようにしておきたい
Twitchのクリップの仕様
クリップボタンを押すと押下するとクリップ編集画面に遷移する
このとき、実は30秒(?)のクリップが自動作成されている
編集したあとpublishボタンを押さなくてもこの一時クリップは残る
件の人物はpublishしなければ公開されないと勘違いしていたのではないかという可能性がある
配信中も録画を遡ればよいだけだが、騒ぎを聞いて住所情報を見たくてついクリップを押して数秒前を覗こうとしたのではないか
publishボタンを押すと編集後のクリップが公開される
一時クリップは消去される
擁護側の証言
Android端末でクリップ作成ボタンを押してすぐ戻ると26秒のものが作成された
30秒じゃないのはたしかに妙
publishを押さないというシナリオなのであれば30秒になるのでは
mtane0412.iconの予想
クリップボタン押した段階で30秒固定の作成リクエストがサーバーサイドで処理されるので、クライアント側で何やろうと変わらないのでは?
30秒が作成されるか否かの二択だと考えた
DiscordのDeveloperサーバーで質問してみた
As far as I'm aware though default clip length should be 30s, but isn't guaranteed.
よっぽど知識のある人がnot guaranteedってことはやっぱクライアントサイドなのかな?
Those "auto clips" will be around 30 seconds in length and have the title of the stream as the title.
aroundってことは30秒じゃない場合もありそう
再現を試みる
iPhoneだと再現できず
低速環境で試すべきか?
Wifi1本のとこでやってみたけど変わらず
PCでも試したがなかなか再現できなかった
Android端末でクリップ作成ボタンを押してすぐ戻る
に引っ張られて押してすぐ閉じるを試していた
試しにクリップボタンを押してから適当にシークバーを動かしたりすると28秒のクリップが作成された!!
再現できたかも!!と思ったが今度は30秒に戻らない
挙動がよくわからん
しばらくしたら30秒に戻った
やはり通信状態?
どうして30秒未満が作成されるのだろうか
配信と同時にアーカイブ動画は生成され続けている
配信中に録画を見ることができる
ある時点から30秒前を取得しているのでは
押下段階でまだ最新部分がエンコードできていない?
一時停止ボタンを押すとクリップボタンは非表示になる
一時停止を押してしばらくして再生を押してすぐにクリップボタンを押すと26秒が作成できた!!
しかし一時停止操作は関係ないか?
以降しばらく26秒、28秒と短いものが作成され続ける
ブラウザを更新しても同じ
やはりエンコードの問題では
秒数表示している配信で確認したらエンコードの問題ではなさそう
最新の録画位置から26秒前だけクリップ
時刻がずれている?
配信時刻は何が決めているのか
クリップ編集画面のときにシーク範囲が0:00-1:26になっている
https://gyazo.com/e5c33f739c0b9286bd0b9947e438ed0c
通常は1:30枠があるはず
最大クリップ時間が1:00
時刻表示されている配信でクリップ押下から4秒後くらいまでクリップされていた
クリップ28秒
どこかで2秒のラグが生まれている?
押下(3:00)→サーバー、リクエスト承り太郎(3:06)→1:30の編集枠取得(1:36-3:06)→リクエスト時点の最新エンコード部分は一部生成されていない(1:36-3:04)
デフォルトは28秒になってしまう
押した段階の時刻チェックをすると最新を取得しているように見える
これかな~?
じゃあ30秒きっちり作れているときはどうやってるんだ…
低遅延モードか!!