X



【ニコ生】新配信録画ツール(仮、livedl Part9

2025/03/28(金) 14:15:45.27ID:F0mO0iR70
!extend:checked:checked:1000:512:donguri=2/3
!extend:checked:checked:1000:512:donguri=2/3

スレの立ちにくい板なのでスレ立てを優先します
VIPQ2_EXTDAT: checked:checked:1000:512:donguri=2/3: EXT was configured
248名無しさん@お腹いっぱい。 警備員[Lv.13]
垢版 |
2025/04/30(水) 10:50:23.41ID:ZNblU9R60
nnn-revo2012の性格は嫌いだが実際に各ツールのために動いてくれてるの事実
そこは評価してるよ
2025/05/01(木) 18:32:11.91ID:Xa+21/n00
性格悪い分を能力や仕事から査定がきっちり引かれるだけの話だな
2025/05/01(木) 23:14:36.12ID:rkhSqYJU0
こっちで先行
音ズレの件の調査中ですがだいたいわかってきたので

◆公式放送
・旧サーバーデーター変換配信および新サーバー移行後配信全て:FFmpegにcopytsオプションつけるつけないに関わらず音ズレなし

◆チャンネル放送
・旧サーバーデーター変換配信:FFmpegにcopytsオプションをつけると音ズレする
 FFmpegにcopytsオプションをつけないと音ズレしない
 上記配信は2025年3月中旬以前の配信
・新サーバー移行後配信:FFmpegにcopytsオプションつけるつけないに関わらず音ズレなし
・新サーバー移行後配信(スマホ配信):FFmpegにcopytsオプションをつけないと音ズレする配信がある
 チャンネル放送でスマホ配信はほぼないが可能性は0ではない

◆ユーザー放送
・旧サーバーデーター変換配信:FFmpegにcopytsオプションをつけると音ズレする
 FFmpegにcopytsオプションをつけないと音ズレしない
 上記配信は2025年2〜3月中旬以前の配信(ユーザーにより移行時期が違う)
・新サーバー移行後配信:FFmpegにcopytsオプションつけるつけないに関わらず音ズレなし
・新サーバー移行後配信(スマホ配信):FFmpegにcopytsオプションをつけないと音ズレする配信がある
 配信者がスタートするタイミングによるが全ユーザー放送の5%ぐらいではないかと思われる
2025/05/01(木) 23:17:07.10ID:rkhSqYJU0
>>250
◆結論
・チャンネル・ユーザー放送は旧サーバーデーター変換配信をDLしないのであればFFmpegに常にcopytsオプションをつける設定でよい
 (SINicoLiveRecV1.0.1.1以前のバージョンおよびStreamlink 7.3.0(nicolive.py無修正)
・ユーザー放送はcopytsをつけないと逆に音ズレする配信があるので注意
 (SINicoLiveRecV1.0.1.2で発生)
・公式配信はどちらでもいい
・旧サーバーデーター変換配信はチャンネルは9月半ば、ユーザーは5月中には期限切れになるのでStreamlinkのnicoliveプラグインの修正をわざわざ依頼する必要性はないと思われる
・当面SINicoLiveRecで常時copytsを出力するようにして音ズレするときだけcopytsを出力しないオプションを作成して対応するのが良いかと思われる
・Streamlink 7.3.0(CUI版)は必要なら各自でnicolive.pyを修正(旧サーバーデーター変換配信をDLする場合のみ)
2025/05/02(金) 09:09:47.33ID:nmyRvZma0
・SlNicoLiveRecでcopytsのオプション設定できるようにする
 デフォルト値はV1.0.1.2とは逆のTrue、外せるようにもする
 外部から引数で渡せるようにするかどうかは議論の余地あり
ってところか…
accessRightMethodについてはすでにsingle_cookieが適用されてるし大丈夫そうだね
元々Streamlinkを直で使ってる人は自分でnicolive.pyは修正するくらいできるだろうし

SINicoLiveRecじゃなくてSl(L)NicoLiveRecね、俺も最初はIだと思ってたけどw
2025/05/02(金) 12:15:02.52ID:oCkw4AJW0
>>252
四八福星間開発氏にはこういうリクエストだすつもり
--------------------------
次にSlNicoLiveRecをバージョンアップする際に以下の機能を追加していただけないでしょうか?
・音ずれ修正機能(チェックボックス)
 設定→上級者設定に以下の項目を追加する
 音ずれ修正
 [ ]音ずれしている放送を音ずれ修正して録画する
 通常は必ずオフにしてください
 ユーザーやチャンネルの一部の放送で音ずれする場合だけチェックオンにして録画してください
※イメージ
//i.imgur.com/u0tYwjY.jpg

チェックがオンの場合はStreamlinkの引数に --ffmpeg-copyts を*つけない*
チェックがオフの場合はStreamlinkの引数に --ffmpeg-copyts を*つける*
デフォルトの設定はオフです
※ちょっとややこしいのですが、現状のニコ生の仕様や--ffmpeg-copytsの仕様によりこうするのが一番良いと判断しました
2025/05/02(金) 12:17:50.50ID:oCkw4AJW0
>>252
>accessRightMethodについてはすでにsingle_cookieが適用されてるし大丈夫そうだね
streamlink本家はまだ未対応ですが、しょうがないので自分がIssue書いて本家に対応してもらう予定
2025/05/02(金) 12:31:12.90ID:oCkw4AJW0
>>251 案としては
・--ffmpeg-no-copytsのようなオプションを新たに追加してもらう
・nicolive.pyの中で放送がユーザー放送だった場合のみcopytsをつけるように変更する
・nicolive.pyの中でニコ生独自のオプション--nico-ffmpeg-copyts=true/falseみたいなオプションを追加してもらう
・nicolive.pyの中で一度m3u8を読み込んで先頭にblankがありなおかつ映像と音声のblankの時間に差がある場合のみcopytsをつけるように変更する

というのもありますが、技術英語もバリバリの人ならどれでもいけると思いますが自分は無理っす
(やりあえる人がいるならやってください)

それとyt-dlpが更新されてますが、こっちの修正者はおそらく公式ぐらいしかみてないようで(モバイル配信の)ユーザー放送はまったく使い物になりません
なのでyt-dlpはユーザー生のモバイル配信のTSの件から始めないといけないですね これまた面倒(自分はやる気ない)
2025/05/02(金) 16:52:16.22ID:hRR/UqiJ0
>>253
「音ずれ修正機能」の案、ユーザーから見るとちょっと紛らわしいかもって思った
理由としては
・「修正」って名前が紛らわしい: 「音ずれ修正」って名前は、いつでもオンにしとけば大丈夫な、万能な解決策だって誤解されやすい
・チェックボックスのオンオフが逆: チェックボックスをオンにするのに、裏側では特定のオプションが無効になるっていう動きが直感的じゃない
・デフォルトがオフで混乱: 現状のニコ生はcopytsをつけておくのがベストだから、デフォルト設定はこの機能がオフになるようにしないといけない。それが「なんで修正機能をオフにしとくの?」って疑問とか混乱のもとになる
・ユーザーが困る、問い合わせが増える: こういう分かりづらさがあると、ユーザーが設定を間違えて録画が失敗したり音ズレしたりして、結局質問がいっぱい来る原因になる可能性がある


項目名: 音ズレ対策
ラベル:現在のニコ生形式に合わせた処理を有効にする
説明:
現在のニコ生形式に合わせた音ズレを防ぐための重要な設定です
基本的にチェックはオンのままご利用ください
ごく一部の特殊な放送で音ズレする場合のみオフにしてください

自分がリクエスト出すわけじゃないし出すつもりもないし
あくまでも個人的な意見だから全く採用しなくてもいいよ
2025/05/02(金) 16:54:18.94ID:hRR/UqiJ0
>>256
デフォルトはチェックオンで
2025/05/02(金) 19:07:14.06ID:+gjQkRfb0
yt-dlp 2025.04.30
このアプデは>>35が正式に組み込まれただけで>>35から特に変更はない
まだ普通に使うのは無理がある感じだから詳しくないならdlpでのニコ生新配信DLは当面諦めたほうが良い
2025/05/02(金) 21:54:45.27ID:TNW1E2Lx0
ド素人だからSlNicoLiveRecに任せるわ
2025/05/03(土) 02:04:29.53ID:dgJbO/1V0
SlNicoLiveRecをV1.0.1.3に更新
//person-of-ehomaki.blog.jp/archives/38458362.html

前のバージョンV1.0.1.2って1400近くDLされてるな
SlNicoLiveRec1012.zip 25/04/18 20:43 1396
2025/05/03(土) 02:16:12.16ID:dgJbO/1V0
>>256
そういう意見もあるんであれば無駄にややこしくなるんでこのまま放っておきますわ
nicolive.pyはaccessRightMethod以外の変更はなしのリクエストは出しときますが、過去のタイムシフトをダウンロードする人なんてほぼいないと思うし今年の10月には音ズレするチャンネルTSもなくなるんで
2025/05/03(土) 02:51:32.47ID:dgJbO/1V0
>>250
◆結論(2025/5/3版)
・チャンネル・ユーザー放送は旧サーバーデーター変換配信をDLしないのであればFFmpegに常にcopytsオプションをつける設定でよい
 (SINicoLiveRecV1.0.1.1以前のバージョンおよびStreamlink 7.3.0(nicolive.py無修正)
・ユーザー放送はcopytsをつけないと逆に音ズレする配信があるので注意
 (SINicoLiveRecV1.0.1.2/V1.0.1.3で発生)
・公式配信はどちらでもいい
・旧サーバーデーター変換配信はチャンネルは9月半ば、ユーザーは5月中には期限切れになるのでStreamlinkのnicoliveプラグインの修正をわざわざ依頼する必要性はないと思われる
・SINicoLiveRecはnicolive.pyをaccessRightMethodの追加以外元に戻すようリクエストを出す
・旧サーバーデーター変換配信をDLする場合はSINicoLiveRecV1.0.1.2/V1.0.1.3を使うか、各自でnicolive.pyを修正する
2025/05/03(土) 09:38:22.32ID:4w/Px+TV0
SlNicoLiveRecをV1.0.1.4に更新
//person-of-ehomaki.blog.jp/archives/38480288.html

更新内容
録画開始時に「録画終了予定時刻を過ぎています。」と表示されて録画できない不具合を修正
nicolive.py を変更
・リアルタイム録画の通信モード「安定性重視」に変更
・常に--ffmpeg-copytsオプションを渡す(ユーザー生放送のアプリ配信の一部で音ズレする対策)
2025/05/03(土) 09:45:33.50ID:4w/Px+TV0
音ズレの件は時間が解決してくれるということで僕はこれで終わり
後追っかけ再生録画したいとか長時間配信してると途中で切れるとか録画時に自動予約など録画ツール(仮にあったがStreamlinkにはない機能については直接Streamlinkの方を修正しないといけないのでIssue書いてStreamlinkのメンテナーさんにお願いするしかないですね
それは機能が欲しい方が各自で要望してください
2025/05/04(日) 04:22:00.62ID:gVJXjP6m0
SINicoLiveRecV1.0.1.2を使ってる人向け
このバージョンだけサーバー移行後の配信もユーザー生(とチャンネルの一部)放送で音ズレが発生すると思います
SINicoLiveRecV1.0.1.2は1400ぐらいダウンロードされてて今ほとんどの人がこれ使ってると思いますが、特にユーザー生放送中心の人は最新版(SINicoLiveRecV1.0.1.4)にアップデートした方が良いと思います

ちなみに僕が書くところの「アップデートした方が良いと思います」は「アップデートしないと必ず音ズレするからアップデートしとけ!」という意味なのでよろしくおねがいしま〜すw
公式やチャンネルしか見ない(録画しない)人はどれ使ってもほぼ音ズレしないので別にアップデートしないくてもいいです(お好みでどうぞ)
2025/05/04(日) 05:57:22.31ID:9p8UPbJ00
何をそんなにごちゃごちゃ書いてるのかわからんのだが普通の人は最新の使ってたら良いの?
2025/05/04(日) 08:46:57.45ID:gVJXjP6m0
>>266
普通の人が何かわからんが、ユーザー生放送をDLするかしないかで変わる
ユーザー生放送をDLするならSINicoLiveRec最新版必須(またはSINicoLiveRecV1.0.1.1のままでも良い)
そうじゃない人はどれでもいい それだけ
2025/05/04(日) 09:04:03.41ID:gVJXjP6m0
>>266
ユーザー生放送しか見ない人にとってはユーザー生放送を見てる人が”普通の人”だろうし
チャンネル放送しか見ない人にとってはチャンネル放送を見てる人が”普通の人”だろうし
公式放送しか見ない人にとっては公式放送を見てる人が”普通の人”だろうから
その人の立場によって”普通の人”がかわるんじゃないかね?

もっといえば世間一般の”普通の人”はニコニコ生放送なんてみてないからそもそもSINicoLiveRecなんていらないだろ
2025/05/04(日) 15:10:10.68ID:9p8UPbJ00
めっちゃごちゃごちゃ書くやんw
もういいよ最新使うわ
2025/05/05(月) 01:10:50.16ID:XS1wsAxj0
よく分からない人は最新版でいいよ
2025/05/05(月) 02:16:58.97ID:2N3VV2k90
ていうか最新版にしない理由あるん?
2025/05/05(月) 03:54:04.41ID:+CROdxwb0
アップデート=新たな不具合の発生=余計な手間の発生という事実を認めない馬鹿が発狂する
2025/05/05(月) 04:43:30.80ID:xy+MtRT60
わからない人向け
・V1.0.1.4(またはそれ以降の最新版)に更新する
・nicolive.pyは変更しない(わかる人のみ自己責任で)
・5chやこの掲示板に書かれている変更は日々変わっていくので特に最初の頃の情報は不要になっていることが多い
2025/05/05(月) 06:39:04.42ID:k8PwvdPm0
最新のに更新したらなんかファイル名エラーで落ちるようになったやんけ・・・
2025/05/05(月) 07:23:49.91ID:xy+MtRT60
>>274
四八福星間開発のブログで報告どうぞ
その手はファイル名に使えない文字が入ってるからだと思うんで、必ずファイル名のフォーマットや放送IDも一緒に報告すること
これはこの手のツールあるあるのお約束だな
2025/05/05(月) 07:44:19.35ID:k8PwvdPm0
使えない文字というか標準から何も変更してないんだけど、みんなは使えてるのかな
別に自分なりのファイル名とかにしてるわけじゃない
2025/05/05(月) 07:55:01.72ID:xy+MtRT60
>>276
あなたがたまたま録画したい配信者のタイトルや名前なりに以下の文字が入ってて、Slなんちゃらはそれを変換してなかったらエラーになるかも
じゃあなければStreamlinkにファイル名を渡した際にエラーになるのかもしれない
どっちにしろここにかいてもどうにもならんので四八福星間開発のブログで報告しないと変わらない

参考 livedlの禁則文字変換
func ReplaceForbidden(name string) (fileName string) {
fileName = name
fileName = regexp.MustCompile(`\\`).ReplaceAllString(fileName, "¥")
fileName = regexp.MustCompile(`/`).ReplaceAllString(fileName, "∕")
fileName = regexp.MustCompile(`:`).ReplaceAllString(fileName, ":")
fileName = regexp.MustCompile(`\*`).ReplaceAllString(fileName, "*")
fileName = regexp.MustCompile(`\?`).ReplaceAllString(fileName, "?")
fileName = regexp.MustCompile(`"`).ReplaceAllString(fileName, `゛`)
fileName = regexp.MustCompile(`<`).ReplaceAllString(fileName, "<")
fileName = regexp.MustCompile(`>`).ReplaceAllString(fileName, ">")
fileName = regexp.MustCompile(`\|`).ReplaceAllString(fileName, "|")

fileName = regexp.MustCompile(`)`).ReplaceAllString(fileName, ")")
fileName = regexp.MustCompile(`(`).ReplaceAllString(fileName, "(")

fileName = regexp.MustCompile(`\p{Zs}+`).ReplaceAllString(fileName, " ")
fileName = regexp.MustCompile(`\A\p{Zs}+|\p{Zs}+\z`).ReplaceAllString(fileName, "")

// 末尾が.であるようなファイルは作れない
fileName = regexp.MustCompile(`\.\p{Zs}*\z`).ReplaceAllString(fileName, ".")

return
}
2025/05/05(月) 08:09:55.95ID:k8PwvdPm0
>>277
すまん言い忘れたけど同じ放送を古いバージョンで録画したら問題無いんだ
なんか自分だけだったら悪いからわざわざ言うのもなと思って
しばらく様子見
2025/05/05(月) 08:37:23.82ID:xy+MtRT60
>>278
>すまん言い忘れたけど同じ放送を古いバージョンで録画したら問題無いんだ
なら3か4で追加された機能の中にバグがあるって特定できるからなおさら*今*報告しといた方がいい
こういうのって同じプログラマーじゃないとわかんねーかもな
2025/05/05(月) 08:40:56.39ID:xy+MtRT60
>>278
>しばらく様子見

そうされるとどれが原因かの特定が時間経つごとにわかりづらくなるから作者もユーザーにもメリットないね
それでも様子見なら前のバージョンずっとつかっとけばいいよ(ただしユーザー生放送録画する以外の場合ね)
2025/05/05(月) 14:28:30.25ID:116RYlLx0
全般的に今の体制じゃ該当ID出さない限り放置だろうな
人居なすぎるので特定IDに関する問題は”そいつ”しか引っかかってない可能性が高い
何もしないで勝手に直るとか思わないほうが良い
2025/05/05(月) 16:31:32.68ID:WQEqNIz90
何の文字で引っかかってるか知らんが、もしその特定文字をその配信者しか使っておらず、かつその配信を自分1人しか録画してなかったとしたら、誰も気づかないしいつまで経っても直らないぞ
自分にしか該当しなくて誰も気づいてないってことは、フリーソフトはまれにある
2025/05/05(月) 19:57:19.16ID:xy+MtRT60
とりあえずIssue書いた
たった1行追加するだけなのになあ
2025/05/05(月) 20:54:39.86ID:xy+MtRT60
>>283
>些細な変更です…変更が必要で正しく動作していることを証明する一致するデバッグログを添えて、プルリクエストを出してください。

無理だ・・・
2025/05/05(月) 21:39:26.17ID:xy+MtRT60
>>284
一応理由を書いておいたけど、これは無理(Issue取り下げ)かなってことで
めんどくさすぎるやん!!!!

yt-dlpの方はそもそもcopyts対応してなさそうだしblank削除もしてないしユーザー生はまったく使い物にならない
今出てるpull requestも進まなそうだしお前らこれでいいのか?
2025/05/05(月) 21:41:03.14ID:+7vYJcPJ0
>>278
こいつが言い出しっぺなのに
恥ずかしい放送録画しててIDを晒したくないんだろ
2025/05/05(月) 21:42:50.44ID:xy+MtRT60
そもそもAES128暗号化はDRMじゃねーから問題ないってことならゲストさん(録画ツールの作者)および自分も動画DLやめてねーから
ニコ動も同様でほとんどのツールは動画のDL辞めてるし
2025/05/05(月) 21:54:34.40ID:xy+MtRT60
>>287
取り下げました
残念無念・・・
2025/05/05(月) 22:25:59.71ID:116RYlLx0
Issue見たけど法規制云々の前にそもそもブラウザとの同時視聴で切断される事を
書いてないから変更の必要性が伝わってないんじゃね
2025/05/05(月) 22:39:56.30ID:xy+MtRT60
>>289
>法規制云々の前にそもそもブラウザとの同時視聴で切断される事を
>書いてないから変更の必要性が伝わってないんじゃね

それはニコ生本来の仕様じゃないし、残念なことにそれを適切に伝える英語力がないんでもう無理っす
心折れました
2025/05/05(月) 23:12:10.90ID:xy+MtRT60
これ保存版ねw
ニコニコは(動画、生放送、静画)含めて表示するブラウザやスマホetcをは1つのデヴァイスとしてとらえてる
具体的にはヘッダーの X-Frontend-Id が同じかどうかで判断してて、同じ X-Frontend-Id があればどっちかが切れる仕様


ブラウザ: 9
Androidアプリ: 90
Androidブラウザ: 91
※iPhoneアプリ、iPhoneブラウザの値はiPhone持ってないので知りませんw(おそらく90/91だと思うけどわからん)

で、各ツールは以下のように指定されてるので X-Frontend-Id が同じならどっちかがきれるのが本来の仕様
でも今回のサーバー移転で X-Frontend-Id が同じでもcookieが同じなら切れなくなったのは新仕様なのか単なるポカミスかなんなのかはわからん

(仮: 90(デフォルトの場合)
livedl: X-Frontend-Id無指定
Streamlink/yt-dlp: 9
2025/05/05(月) 23:19:30.36ID:xy+MtRT60
>>291
>livedl: X-Frontend-Id無指定
livedlはX-Frontend-Idが指定される前から作られてたツールだけどX-Frontend-Id導入後も無指定はほかのX-Frontend-Idと干渉しないってのを知ってそのままにしておいたのさ

こうやって暴露しちゃうとドワンゴ側で対策されちゃうかもしれんからみんなだまってたけどもういいかw
2025/05/06(火) 06:23:18.95ID:vKkWFYcm0
>>291
>ブラウザ: 9

これはニコ生の場合で、

ニコ動ブラウザ: 6
ニコニコ静画ブラウザ: 56

のようにブラウザでも機能別に割り振られてます
ニコ動に関してはX-Frontend-Idが6(モバイルは知らん)以外だとAPIではじかれるがニコ生は今のところそういう制限はないみたいです
ただ、こういう仕様が悪用されるようなことがあれば制限なりなんなりされるかと思います
2025/05/06(火) 06:26:22.34ID:vKkWFYcm0
>>288
今回取り下げた理由として、自分の英語力のなさもそうですが著作権うんぬんをこれ以上言うとStreamlinkのメンテナーさんが「めんどくさいからnicolive.pyを削除してしまうか」ってことになる可能性が高いので今回引き下がりました
2025/05/06(火) 06:59:17.78ID:vKkWFYcm0
>>291

>例
>ニコ生ブラウザ: 9

>Streamlink/yt-dlp: 9

同じ X-Frontend-Id だからどっちかが切断されるのが本来の仕様

>例
>ニコ生ブラウザ: 9

>(仮: 90(デフォルトの場合)

だから旧動画サーバーの時は今まで録画しながらブラウザで視聴できてたわけ これが本来の仕様


こうやって暴露してしまうとGW明けに修正されるかもしれんけどそれはしょうがないねwww
2025/05/06(火) 07:11:22.07ID:vKkWFYcm0
今もう使えるツールないし、さすがに今はニコ生側で使えなくしてると思うから言うけど、livedl(オリジナル)のログインのとある方法だと2段階認証してるアカウントでも2段階認証をしなくてもそのままログインできるks仕様だった

そんなサイトだからそりゃブラックなんとかにクラッキングされちゃいますわな
2025/05/06(火) 09:25:20.51ID:84i6wH/E0
ほえー
使うだけの側には全く無いわからん内容だわ
ツール作者にはいつもお世話になってますありがとう
2025/05/06(火) 18:20:51.63ID:vKkWFYcm0
>>291
肝心なこと書いてなかった
ニコ生でwebsocket接続する際に

[plugin.api.websocket][debug] Connecting to: wss://a.live2.nicovideo.jp/unama/wsapi/v2/watch/47874593260110/timeshift?audience_token=**********&frontend_id=9

ここの最期の数字でニコ生の接続がどのクライアント(ブラウザー・アプリ・アプリブラウザーetc)からかをサーバーに伝えてて、この数字が重複してるとどれかが切れるというのが本来の仕様なはず

いつからかはわからんけどfrontend_idが同じでもcookieが同じなら切れなくなった(ブラウザで同じ配信を複数開いてもどっちも切れない)のは新仕様なのか何か意図があるのかw単なるポカミスかなんなのかはわからん
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況