PipePipe icon indicating copy to clipboard operation
PipePipe copied to clipboard

[Bug] Bilibili channel fails to load due to 412 security error

Open long-crypto opened this issue 3 months ago • 0 comments

Checklist

  • [x] I make sure that the issue is NOT a duplicate of pinned issues
  • [x] I make sure I am using the LATEST version - check here
  • [x] I understand that issues with limited impact, such as those occurring on specific devices or under specific network conditions, will not be fixed
  • [x] I have attached the error report in the issue

Describe the bug

Exception

  • User Action: requested stream
  • Request: https://space.bilibili.com/504934876
  • Content Country: IE
  • Content Language: en-IE
  • App Language: en_IE
  • Service: BiliBili (Logged in)
  • Version: 4.7.3
  • OS: Linux Android 15 - 35
Crash log

org.schabi.newpipe.extractor.exceptions.ParsingException: Failed parse response body: <!DOCTYPE html>
<html lang="zh-cn">

<head>
    <meta http-equiv="Access-Control-Allow-Origin" content="*" />
    <meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5)">
    <meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5)">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta name="spm_prefix" content="333.937">
    <title>出错啦! - bilibili.com</title>
    <link rel="shortcut icon" href="//static.hdslb.com/images/favicon.ico">
    <script type="text/javascript" src="//s1.hdslb.com/bfs/static/jinkela/long/js/jquery/jquery1.7.2.min.js"></script>
    <style>
        body {
          margin: 0;
          padding: 0;
          width: 100vw;
          height: 100vh;
        }
       .error-container {
          height: 100%;
          width: 100%;
          display: flex;
          justify-content: center;
          align-items: center;
        }
        .captcha-content {
          text-align: center;
        }
        .txt-wrap {
          margin-top: 15px;
          font-size: 12px;
          line-height: 22px;
          color: #999;
          text-align: left;
        }
        .txt-item.err-code {
          font-size: 28px;
          font-weight: 700;
          text-align: center;
          color: #4c93ff;
          margin-top: 16px;
        }
        
        .captcha-img {
          width: 160px;
          height: 160px;
          margin: auto;
          background: url('https://i0.hdslb.com/bfs/static/jinkela/long/412/%E9%A1%B5%E9%9D%A2%E7%8A%B6%E6%80%81%E5%9B%BE.png') no-repeat center / cover;
        }
        .err-text {
          color: #03a9f4;
        }
        .err-default {
          font-size: 16px;
          margin-top: 10px;
        }
      </style>
</head>

<body>
    <noscript>
          <strong>抱歉!我们需要允许JavaScript才能够正常运行。请打开后重试~</strong>
          <strong>错误:412</strong>
      </noscript>
      <div class="error-container">
        <div class="captcha-content">
          <div class="captcha-img"></div>
          <div class="txt-item err-code">错误号: 412</div>
          <div class="txt-item err-text"></div>
          <div class="txt-item err-default">由于触发哔哩哔哩安全风控策略,该次访问请求被拒绝。 
            <div class="txt-item">The request was rejected because of the bilibili security control policy.</div>
          </div>
          <div class="txt-wrap">
            <div class="txt-item datetime_now"></div>
            <div class="txt-item user_url"></div>
            <div class="txt-item user_ip"></div>
            <div class="txt-item user_id"></div>
          </div>
          <div class="check-input">
              <div class="title"></div>
              <div class="box-pic"></div>
              <div class="box"></div>
              <div class="state"></div>
          </div>
      </div>
    </div>
    <script type="text/javascript" charset="utf-8" src="//security.bilibili.com/static/js/sha256.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="//security.bilibili.com/static/js/js.cookie.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="//security.bilibili.com/static/js/412.js"></script>
</body>
</html>
	at org.schabi.newpipe.extractor.services.bilibili.utils.requestUserSpaceResponse(utils.java:469)
	at org.schabi.newpipe.extractor.services.bilibili.extractors.BilibiliChannelExtractor$WebUserVideoImpl.fetchViaAPI(BilibiliChannelExtractor.java:305)
	at org.schabi.newpipe.extractor.services.bilibili.extractors.BilibiliChannelExtractor$WebUserVideoImpl.onFetchPage(BilibiliChannelExtractor.java:321)
	at org.schabi.newpipe.extractor.services.bilibili.extractors.BilibiliChannelExtractor.onFetchPage(BilibiliChannelExtractor.java:62)
	at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:60)
	at org.schabi.newpipe.extractor.channel.ChannelInfo.getInfo(ChannelInfo.java:58)
	at org.schabi.newpipe.util.ExtractorHelper.lambda$getChannelInfo$5(ExtractorHelper.java:168)
	at org.schabi.newpipe.util.ExtractorHelper.$r8$lambda$sTHvUhDf9nfFrAT_vk2fREscV8U(Unknown Source:0)
	at org.schabi.newpipe.util.ExtractorHelper$$ExternalSyntheticLambda12.call(Unknown Source:4)
	at io.reactivex.rxjava3.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:43)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
	at io.reactivex.rxjava3.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
	at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330)
	at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
	at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
	at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
	at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15868)
	at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
	at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5330)
	at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
	at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4813)
	at io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
	at io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(Scheduler.java:644)
	at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
	at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
	at java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
	at java.lang.Thread.run(Thread.java:1012)


Frequency

Sometimes (40-60% of the time)

Device

oneplus 13 a15

Steps to reproduce the bug

show channel detail

Additional context

No response

long-crypto avatar Oct 06 '25 09:10 long-crypto