moyada / stealer

抖音、快手、火山、皮皮虾,视频去水印程序
MIT License
973 stars 274 forks source link

抖音分析/下载失败 #68

Closed chahushui closed 1 year ago

chahushui commented 2 years ago

分析或下载时,报错,如下: 地址分析失败, <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="robots" content="NONE,NOARCHIVE"> <title>IndexError at /video/fetch</title> <style type="text/css"> html * { padding:0; margin:0; } body * { padding:10px 20px; } body * * { padding:0; } body { font:small sans-serif; background-color:#fff; color:#000; } body>div { border-bottom:1px solid #ddd; } h1 { font-weight:normal; } h2 { margin-bottom:.8em; } h3 { margin:1em 0 .5em 0; } h4 { margin:0 0 .5em 0; font-weight: normal; } code, pre { font-size: 100%; white-space: pre-wrap; } table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; } tbody td, tbody th { vertical-align:top; padding:2px 3px; } thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; } tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; } table.vars { margin:5px 0 2px 40px; } table.vars td, table.req td { font-family:monospace; } table td.code { width:100%; } table td.code pre { overflow:hidden; } table.source th { color:#666; } table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; } ul.traceback { list-style-type:none; color: #222; } ul.traceback li.frame { padding-bottom:1em; color:#4f4f4f; } ul.traceback li.user { background-color:#e0e0e0; color:#000 } div.context { padding:10px 0; overflow:hidden; } div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; } div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; } div.context ol li pre { display:inline; } div.context ol.context-line li { color:#464646; background-color:#dfdfdf; padding: 3px 2px; } div.context ol.context-line li span { position:absolute; right:32px; } .user div.context ol.context-line li { background-color:#bbb; color:#000; } .user div.context ol li { color:#666; } div.commands { margin-left: 40px; } div.commands a { color:#555; text-decoration:none; } .user div.commands a { color: black; } #summary { background: #ffc; } #summary h2 { font-weight: normal; color: #666; } #explanation { background:#eee; } #template, #template-not-exist { background:#f6f6f6; } #template-not-exist ul { margin: 0 0 10px 20px; } #template-not-exist .postmortem-section { margin-bottom: 3px; } #unicode-hint { background:#eee; } #traceback { background:#eee; } #requestinfo { background:#f6f6f6; padding-left:120px; } #summary table { border:none; background:transparent; } #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; } #requestinfo h3 { margin-bottom:-1em; } .error { background: #ffc; } .specific { color:#cc3300; font-weight:bold; } h2 span.commands { font-size:.7em; font-weight:normal; } span.commands a:link {color:#5E5694;} pre.exception_value { font-family: sans-serif; color: #575757; font-size: 1.5em; margin: 10px 0 10px 0; } .append-bottom { margin-bottom: 10px; } .fname { user-select: all; } </style> <script> function hideAll(elems) { for (var e = 0; e < elems.length; e++) { elems[e].style.display = 'none'; } } window.onload = function() { hideAll(document.querySelectorAll('table.vars')); hideAll(document.querySelectorAll('ol.pre-context')); hideAll(document.querySelectorAll('ol.post-context')); hideAll(document.querySelectorAll('div.pastebin')); } function toggle() { for (var i = 0; i < arguments.length; i++) { var e = document.getElementById(arguments[i]); if (e) { e.style.display = e.style.display == 'none' ? 'block': 'none'; } } return false; } function varToggle(link, id) { toggle('v' + id); var s = link.getElementsByTagName('span')[0]; var uarr = String.fromCharCode(0x25b6); var darr = String.fromCharCode(0x25bc); s.textContent = s.textContent == uarr ? darr : uarr; return false; } function switchPastebinFriendly(link) { s1 = "Switch to copy-and-paste view"; s2 = "Switch back to interactive view"; link.textContent = link.textContent.trim() == s1 ? s2: s1; toggle('browserTraceback', 'pastebinTraceback'); return false; } </script> </head> <body> <div id="summary"> <h1>IndexError at /video/fetch</h1> <pre class="exception_value">list index out of range</pre> <table class="meta"> <tr> <th>Request Method:</th> <td>GET</td> </tr> <tr> <th>Request URL:</th> <td>http://dv.newshub.eu.org/video/fetch?type=auto&amp;url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E</td> </tr> <tr> <th>Django Version:</th> <td>3.2.13</td> </tr> <tr> <th>Exception Type:</th> <td>IndexError</td> </tr> <tr> <th>Exception Value:</th> <td><pre>list index out of range</pre></td> </tr> <tr> <th>Exception Location:</th> <td><span class="fname">/code/service/bilibili.py</span>, line 53, in get_url</td> </tr> <tr> <th>Python Executable:</th> <td>/usr/local/bin/python</td> </tr> <tr> <th>Python Version:</th> <td>3.7.12</td> </tr> <tr> <th>Python Path:</th> <td><pre>[&#x27;/code&#x27;, &#x27;/usr/local/lib/python37.zip&#x27;, &#x27;/usr/local/lib/python3.7&#x27;, &#x27;/usr/local/lib/python3.7/lib-dynload&#x27;, &#x27;/usr/local/lib/python3.7/site-packages&#x27;]</pre></td> </tr> <tr> <th>Server time:</th> <td>Mon, 15 Aug 2022 23:16:53 +0800</td> </tr> </table> </div> <div id="traceback"> <h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);"> Switch to copy-and-paste view</a></span> </h2> <div id="browserTraceback"> <ul class="traceback"> <li class="frame django"> <code class="fname">/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py</code>, line 47, in inner <div class="context" id="c140358654912064"> <ol start="40" class="pre-context" id="pre140358654912064"> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> response = await sync_to_async(response_for_exception, thread_sensitive=False)(request, exc)</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> return response</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> return inner</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> else:</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> @wraps(get_response)</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> def inner(request):</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> try:</pre></li> </ol> <ol start="47" class="context-line"> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> response = get_response(request)</pre> <span>…</span></li> </ol> <ol start='48' class="post-context" id="post140358654912064"> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> except Exception as exc:</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> response = response_for_exception(request, exc)</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> return response</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> return inner</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre></pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre></pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358654912064')"><span>&#x25b6;</span> Local vars</a> </div> <table class="vars" id="v140358654912064"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>exc</td> <td class="code"><pre>IndexError(&#x27;list index out of range&#x27;)</pre></td> </tr> <tr> <td>get_response</td> <td class="code"><pre>&lt;bound method BaseHandler._get_response of &lt;django.core.handlers.wsgi.WSGIHandler object at 0x7fa7cce9a850&gt;&gt;</pre></td> </tr> <tr> <td>request</td> <td class="code"><pre>&lt;WSGIRequest: GET &#x27;/video/fetch?type=auto&amp;url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E&#x27;&gt;</pre></td> </tr> </tbody> </table> </li> <li class="frame django"> <code class="fname">/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py</code>, line 181, in _get_response <div class="context" id="c140358654911424"> <ol start="174" class="pre-context" id="pre140358654911424"> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre></pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> if response is None:</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> # If it is an asynchronous view, run it in a subthread.</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> if asyncio.iscoroutinefunction(wrapped_callback):</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> wrapped_callback = async_to_sync(wrapped_callback)</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> try:</pre></li> </ol> <ol start="181" class="context-line"> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>…</span></li> </ol> <ol start='182' class="post-context" id="post140358654911424"> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> except Exception as e:</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> response = self.process_exception_by_middleware(e, request)</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> if response is None:</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> raise</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre></pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> # Complain if the view returned None (a common error).</pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358654911424')"><span>&#x25b6;</span> Local vars</a> </div> <table class="vars" id="v140358654911424"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>callback</td> <td class="code"><pre>&lt;function fetch at 0x7fa7cbd739e0&gt;</pre></td> </tr> <tr> <td>callback_args</td> <td class="code"><pre>()</pre></td> </tr> <tr> <td>callback_kwargs</td> <td class="code"><pre>{}</pre></td> </tr> <tr> <td>middleware_method</td> <td class="code"><pre>&lt;bound method CsrfViewMiddleware.process_view of &lt;django.middleware.csrf.CsrfViewMiddleware object at 0x7fa7cbcb3510&gt;&gt;</pre></td> </tr> <tr> <td>request</td> <td class="code"><pre>&lt;WSGIRequest: GET &#x27;/video/fetch?type=auto&amp;url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E&#x27;&gt;</pre></td> </tr> <tr> <td>response</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>self</td> <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7fa7cce9a850&gt;</pre></td> </tr> <tr> <td>wrapped_callback</td> <td class="code"><pre>&lt;function fetch at 0x7fa7cbd739e0&gt;</pre></td> </tr> </tbody> </table> </li> <li class="frame user"> <code class="fname">/code/core/apis.py</code>, line 30, in fetch <div class="context" id="c140358654911264"> <ol start="23" class="pre-context" id="pre140358654911264"> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> if itype is None:</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> return HttpResponseBadRequest(ErrorResult.TYPE_NOT_PRESENT.get_data())</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre></pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> vtype = core.type.video_mapper.get(itype)</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> if vtype is None:</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> return HttpResponseServerError(ErrorResult.MAPPER_NOT_EXIST.get_data())</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre></pre></li> </ol> <ol start="30" class="context-line"> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> return controller.fetch(vtype, request)</pre> <span>…</span></li> </ol> <ol start='31' class="post-context" id="post140358654911264"> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre></pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre></pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre>def download(request):</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> itype = request.GET.get(&#x27;type&#x27;)</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> if itype is None:</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> return HttpResponseBadRequest(ErrorResult.TYPE_NOT_PRESENT.get_data())</pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358654911264')"><span>&#x25b6;</span> Local vars</a> </div> <table class="vars" id="v140358654911264"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>itype</td> <td class="code"><pre>&#x27;auto&#x27;</pre></td> </tr> <tr> <td>request</td> <td class="code"><pre>&lt;WSGIRequest: GET &#x27;/video/fetch?type=auto&amp;url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E&#x27;&gt;</pre></td> </tr> <tr> <td>vtype</td> <td class="code"><pre>&lt;Video.AUTO: &#x27;auto&#x27;&gt;</pre></td> </tr> </tbody> </table> </li> <li class="frame user"> <code class="fname">/code/route/controller.py</code>, line 19, in fetch <div class="context" id="c140358654912784"> <ol start="12" class="pre-context" id="pre140358654912784"> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre></pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre></pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre>def fetch(vtype: Video, request):</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> url = request.GET.get(&#x27;url&#x27;)</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> if url is None:</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> return HttpResponseBadRequest(ErrorResult.URL_NOT_PRESENT.get_data())</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre></pre></li> </ol> <ol start="19" class="context-line"> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> vtype = check_vtype(vtype, url)</pre> <span>…</span></li> </ol> <ol start='20' class="post-context" id="post140358654912784"> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> if vtype is None:</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> return HttpResponseBadRequest(ErrorResult.URL_NOT_INCORRECT.get_data())</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre></pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> service = handler_mapper.get_service(vtype)</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> logger.info(&#x27;fetch {} &lt;== {}.&#x27;.format(vtype.label, url))</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> result = service.fetch(url)</pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358654912784')"><span>&#x25b6;</span> Local vars</a> </div> <table class="vars" id="v140358654912784"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>request</td> <td class="code"><pre>&lt;WSGIRequest: GET &#x27;/video/fetch?type=auto&amp;url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E&#x27;&gt;</pre></td> </tr> <tr> <td>url</td> <td class="code"><pre>&#x27;9.23 uSy:/ 这电影最后&#x27;</pre></td> </tr> <tr> <td>vtype</td> <td class="code"><pre>&lt;Video.AUTO: &#x27;auto&#x27;&gt;</pre></td> </tr> </tbody> </table> </li> <li class="frame user"> <code class="fname">/code/route/controller.py</code>, line 51, in check_vtype <div class="context" id="c140358654913904"> <ol start="44" class="pre-context" id="pre140358654913904"> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre></pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre></pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre>def check_vtype(vtype: Video, url: str) -&gt; Union[Optional[Video], Any]:</pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> if vtype is not Video.AUTO:</pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> return vtype</pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre></pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> for v, service in handler_mapper.service_mapper.items():</pre></li> </ol> <ol start="51" class="context-line"> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> if service.get_url(url):</pre> <span>…</span></li> </ol> <ol start='52' class="post-context" id="post140358654913904"> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> return v</pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> return None</pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358654913904')"><span>&#x25b6;</span> Local vars</a> </div> <table class="vars" id="v140358654913904"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>service</td> <td class="code"><pre>&lt;class &#x27;service.bilibili.BiliBiliService&#x27;&gt;</pre></td> </tr> <tr> <td>url</td> <td class="code"><pre>&#x27;9.23 uSy:/ 这电影最后&#x27;</pre></td> </tr> <tr> <td>v</td> <td class="code"><pre>&lt;Video.BILIBILI: &#x27;bilibili&#x27;&gt;</pre></td> </tr> <tr> <td>vtype</td> <td class="code"><pre>&lt;Video.AUTO: &#x27;auto&#x27;&gt;</pre></td> </tr> </tbody> </table> </li> <li class="frame user"> <code class="fname">/code/service/bilibili.py</code>, line 53, in get_url <div class="context" id="c140358619319744"> <ol start="46" class="pre-context" id="pre140358619319744"> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> if &quot;bilibili&quot; in text:</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> urls = re.findall(r&#x27;(?&lt;=www\.bilibili\.com\/video\/).+&#x27;, text, re.I | re.M)</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> if urls:</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> return &quot;https://www.bilibili.com/video/&quot; + urls[0]</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> return None</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre></pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> urls = re.findall(r&#x27;(?&lt;=b23\.tv\/)\w+&#x27;, text, re.I | re.M)</pre></li> </ol> <ol start="53" class="context-line"> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> url = &quot;https://b23.tv/&quot; + urls[0]</pre> <span>…</span></li> </ol> <ol start='54' class="post-context" id="post140358619319744"> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> res = http_utils.get(url, header=headers)</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> url = res.url</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> return url</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre></pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> # @classmethod</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> # def get_prefix_pattern(cls) -&gt; str:</pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358619319744')"><span>&#x25b6;</span> Local vars</a> </div> <table class="vars" id="v140358619319744"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>cls</td> <td class="code"><pre>&lt;class &#x27;service.bilibili.BiliBiliService&#x27;&gt;</pre></td> </tr> <tr> <td>text</td> <td class="code"><pre>&#x27;9.23 uSy:/ 这电影最后&#x27;</pre></td> </tr> <tr> <td>urls</td> <td class="code"><pre>[]</pre></td> </tr> </tbody> </table> </li> </ul> </div> <form action="https://dpaste.com/" name="pasteform" id="pasteform" method="post"> <div id="pastebinTraceback" class="pastebin"> <input type="hidden" name="language" value="PythonConsole"> <input type="hidden" name="title" value="IndexError at /video/fetch"> <input type="hidden" name="source" value="Django Dpaste Agent"> <input type="hidden" name="poster" value="Django"> <textarea name="content" id="traceback_area" cols="140" rows="25"> Environment: Request Method: GET Request URL: http://dv.newshub.eu.org/video/fetch?type=auto&amp;url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E Django Version: 3.2.13 Python Version: 3.7.12 Installed Applications: [&#x27;corsheaders&#x27;, &#x27;django.contrib.admin&#x27;, &#x27;django.contrib.auth&#x27;, &#x27;django.contrib.contenttypes&#x27;, &#x27;django.contrib.sessions&#x27;, &#x27;django.contrib.messages&#x27;, &#x27;django.contrib.staticfiles&#x27;] Installed Middleware: [&#x27;django.middleware.security.SecurityMiddleware&#x27;, &#x27;django.contrib.sessions.middleware.SessionMiddleware&#x27;, &#x27;corsheaders.middleware.CorsMiddleware&#x27;, &#x27;django.middleware.common.CommonMiddleware&#x27;, &#x27;django.middleware.csrf.CsrfViewMiddleware&#x27;, &#x27;django.contrib.auth.middleware.AuthenticationMiddleware&#x27;, &#x27;django.contrib.messages.middleware.MessageMiddleware&#x27;, &#x27;django.middleware.clickjacking.XFrameOptionsMiddleware&#x27;] Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/code/core/apis.py", line 30, in fetch return controller.fetch(vtype, request) File "/code/route/controller.py", line 19, in fetch vtype = check_vtype(vtype, url) File "/code/route/controller.py", line 51, in check_vtype if service.get_url(url): File "/code/service/bilibili.py", line 53, in get_url url = &quot;https://b23.tv/&quot; + urls[0] Exception Type: IndexError at /video/fetch Exception Value: list index out of range </textarea> <br><br> <input type="submit" value="Share this traceback on a public website"> </div> </form> </div> <div id="requestinfo"> <h2>Request information</h2> <h3 id="user-info">USER</h3> <p>AnonymousUser</p> <h3 id="get-info">GET</h3> <table class="req"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>type</td> <td class="code"><pre>&#x27;auto&#x27;</pre></td> </tr> <tr> <td>url</td> <td class="code"><pre>&#x27;9.23 uSy:/ 这电影最后&#x27;</pre></td> </tr> </tbody> </table> <h3 id="post-info">POST</h3> <p>No POST data</p> <h3 id="files-info">FILES</h3> <p>No FILES data</p> <h3 id="cookie-info">COOKIES</h3> <p>No cookie data</p> <h3 id="meta-info">META</h3> <table class="req"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>CONTENT_LENGTH</td> <td class="code"><pre>&#x27;&#x27;</pre></td> </tr> <tr> <td>CONTENT_TYPE</td> <td class="code"><pre>&#x27;text/plain&#x27;</pre></td> </tr> <tr> <td>DJANGO_SETTINGS_MODULE</td> <td class="code"><pre>&#x27;stealer.settings&#x27;</pre></td> </tr> <tr> <td>GATEWAY_INTERFACE</td> <td class="code"><pre>&#x27;CGI/1.1&#x27;</pre></td> </tr> <tr> <td>GPG_KEY</td> <td class="code"><pre>&#x27;********************&#x27;</pre></td> </tr> <tr> <td>HOME</td> <td class="code"><pre>&#x27;/root&#x27;</pre></td> </tr> <tr> <td>HOSTNAME</td> <td class="code"><pre>&#x27;9f62c05ba189&#x27;</pre></td> </tr> <tr> <td>HTTP_ACCEPT</td> <td class="code"><pre>&#x27;application/json, text/plain, */*&#x27;</pre></td> </tr> <tr> <td>HTTP_ACCEPT_ENCODING</td> <td class="code"><pre>&#x27;gzip, deflate, br&#x27;</pre></td> </tr> <tr> <td>HTTP_ACCEPT_LANGUAGE</td> <td class="code"><pre>&#x27;zh-CN,zh;q=0.9&#x27;</pre></td> </tr> <tr> <td>HTTP_CONNECTION</td> <td class="code"><pre>&#x27;close&#x27;</pre></td> </tr> <tr> <td>HTTP_HOST</td> <td class="code"><pre>&#x27;dv.newshub.eu.org&#x27;</pre></td> </tr> <tr> <td>HTTP_REFERER</td> <td class="code"><pre>&#x27;https://dv.newshub.eu.org/&#x27;</pre></td> </tr> <tr> <td>HTTP_SEC_CH_UA</td> <td class="code"><pre>&#x27;&quot;.Not/A)Brand&quot;;v=&quot;99&quot;, &quot;Google Chrome&quot;;v=&quot;103&quot;, &quot;Chromium&quot;;v=&quot;103&quot;&#x27;</pre></td> </tr> <tr> <td>HTTP_SEC_CH_UA_MOBILE</td> <td class="code"><pre>&#x27;?0&#x27;</pre></td> </tr> <tr> <td>HTTP_SEC_CH_UA_PLATFORM</td> <td class="code"><pre>&#x27;&quot;Windows&quot;&#x27;</pre></td> </tr> <tr> <td>HTTP_SEC_FETCH_DEST</td> <td class="code"><pre>&#x27;empty&#x27;</pre></td> </tr> <tr> <td>HTTP_SEC_FETCH_MODE</td> <td class="code"><pre>&#x27;cors&#x27;</pre></td> </tr> <tr> <td>HTTP_SEC_FETCH_SITE</td> <td class="code"><pre>&#x27;same-origin&#x27;</pre></td> </tr> <tr> <td>HTTP_USER_AGENT</td> <td class="code"><pre>(&#x27;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like &#x27; &#x27;Gecko) Chrome/103.0.0.0 Safari/537.36&#x27;)</pre></td> </tr> <tr> <td>HTTP_X_FORWARDED_FOR</td> <td class="code"><pre>&#x27;20.187.74.140&#x27;</pre></td> </tr> <tr> <td>HTTP_X_REAL_IP</td> <td class="code"><pre>&#x27;20.187.74.140&#x27;</pre></td> </tr> <tr> <td>LANG</td> <td class="code"><pre>&#x27;C.UTF-8&#x27;</pre></td> </tr> <tr> <td>PATH</td> <td class="code"><pre>&#x27;/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&#x27;</pre></td> </tr> <tr> <td>PATH_INFO</td> <td class="code"><pre>&#x27;/video/fetch&#x27;</pre></td> </tr> <tr> <td>PYTHONUNBUFFERED</td> <td class="code"><pre>&#x27;1&#x27;</pre></td> </tr> <tr> <td>PYTHON_GET_PIP_SHA256</td> <td class="code"><pre>&#x27;e235c437e5c7d7524fbce3880ca39b917a73dc565e0c813465b7a7a329bb279a&#x27;</pre></td> </tr> <tr> <td>PYTHON_GET_PIP_URL</td> <td class="code"><pre>&#x27;https://github.com/pypa/get-pip/raw/38e54e5de07c66e875c11a1ebbdb938854625dd8/public/get-pip.py&#x27;</pre></td> </tr> <tr> <td>PYTHON_PIP_VERSION</td> <td class="code"><pre>&#x27;21.2.4&#x27;</pre></td> </tr> <tr> <td>PYTHON_SETUPTOOLS_VERSION</td> <td class="code"><pre>&#x27;57.5.0&#x27;</pre></td> </tr> <tr> <td>PYTHON_VERSION</td> <td class="code"><pre>&#x27;3.7.12&#x27;</pre></td> </tr> <tr> <td>QUERY_STRING</td> <td class="code"><pre>&#x27;type=auto&amp;url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E&#x27;</pre></td> </tr> <tr> <td>REMOTE_ADDR</td> <td class="code"><pre>&#x27;172.17.0.1&#x27;</pre></td> </tr> <tr> <td>REMOTE_HOST</td> <td class="code"><pre>&#x27;&#x27;</pre></td> </tr> <tr> <td>REQUEST_METHOD</td> <td class="code"><pre>&#x27;GET&#x27;</pre></td> </tr> <tr> <td>RUN_MAIN</td> <td class="code"><pre>&#x27;true&#x27;</pre></td> </tr> <tr> <td>SCRIPT_NAME</td> <td class="code"><pre>&#x27;&#x27;</pre></td> </tr> <tr> <td>SERVER_NAME</td> <td class="code"><pre>&#x27;9f62c05ba189&#x27;</pre></td> </tr> <tr> <td>SERVER_PORT</td> <td class="code"><pre>&#x27;8000&#x27;</pre></td> </tr> <tr> <td>SERVER_PROTOCOL</td> <td class="code"><pre>&#x27;HTTP/1.0&#x27;</pre></td> </tr> <tr> <td>SERVER_SOFTWARE</td> <td class="code"><pre>&#x27;WSGIServer/0.2&#x27;</pre></td> </tr> <tr> <td>TZ</td> <td class="code"><pre>&#x27;Asia/Shanghai&#x27;</pre></td> </tr> <tr> <td>wsgi.errors</td> <td class="code"><pre>&lt;_io.TextIOWrapper name=&#x27;&lt;stderr&gt;&#x27; mode=&#x27;w&#x27; encoding=&#x27;UTF-8&#x27;&gt;</pre></td> </tr> <tr> <td>wsgi.file_wrapper</td> <td class="code"><pre>&lt;class &#x27;wsgiref.util.FileWrapper&#x27;&gt;</pre></td> </tr> <tr> <td>wsgi.input</td> <td class="code"><pre>&lt;django.core.handlers.wsgi.LimitedStream object at 0x7fa7c9a19fd0&gt;</pre></td> </tr> <tr> <td>wsgi.multiprocess</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>wsgi.multithread</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>wsgi.run_once</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>wsgi.url_scheme</td> <td class="code"><pre>&#x27;http&#x27;</pre></td> </tr> <tr> <td>wsgi.version</td> <td class="code"><pre>(1, 0)</pre></td> </tr> </tbody> </table> <h3 id="settings-info">Settings</h3> <h4>Using settings module <code>stealer.settings</code></h4> <table class="req"> <thead> <tr> <th>Setting</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>ABSOLUTE_URL_OVERRIDES</td> <td class="code"><pre>{}</pre></td> </tr> <tr> <td>ADMINS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>ALLOWED_HOSTS</td> <td class="code"><pre>[&#x27;*&#x27;]</pre></td> </tr> <tr> <td>APPEND_SLASH</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>AUTHENTICATION_BACKENDS</td> <td class="code"><pre>[&#x27;django.contrib.auth.backends.ModelBackend&#x27;]</pre></td> </tr> <tr> <td>AUTH_PASSWORD_VALIDATORS</td> <td class="code"><pre>&#x27;********************&#x27;</pre></td> </tr> <tr> <td>AUTH_USER_MODEL</td> <td class="code"><pre>&#x27;auth.User&#x27;</pre></td> </tr> <tr> <td>BASE_DIR</td> <td class="code"><pre>&#x27;/code&#x27;</pre></td> </tr> <tr> <td>BASE_LOG_DIR</td> <td class="code"><pre>&#x27;/code&#x27;</pre></td> </tr> <tr> <td>CACHES</td> <td class="code"><pre>{&#x27;default&#x27;: {&#x27;BACKEND&#x27;: &#x27;django.core.cache.backends.locmem.LocMemCache&#x27;}}</pre></td> </tr> <tr> <td>CACHE_MIDDLEWARE_ALIAS</td> <td class="code"><pre>&#x27;default&#x27;</pre></td> </tr> <tr> <td>CACHE_MIDDLEWARE_KEY_PREFIX</td> <td class="code"><pre>&#x27;********************&#x27;</pre></td> </tr> <tr> <td>CACHE_MIDDLEWARE_SECONDS</td> <td class="code"><pre>600</pre></td> </tr> <tr> <td>CORS_ALLOW_CREDENTIALS</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>CORS_ALLOW_HEADERS</td> <td class="code"><pre>(&#x27;XMLHttpRequest&#x27;, &#x27;X_FILENAME&#x27;, &#x27;accept-encoding&#x27;, &#x27;authorization&#x27;, &#x27;content-type&#x27;, &#x27;dnt&#x27;, &#x27;origin&#x27;, &#x27;user-agent&#x27;, &#x27;x-csrftoken&#x27;, &#x27;x-requested-with&#x27;, &#x27;Pragma&#x27;)</pre></td> </tr> <tr> <td>CORS_ALLOW_METHODS</td> <td class="code"><pre>(&#x27;DELETE&#x27;, &#x27;GET&#x27;, &#x27;OPTIONS&#x27;, &#x27;PATCH&#x27;, &#x27;POST&#x27;, &#x27;PUT&#x27;, &#x27;VIEW&#x27;)</pre></td> </tr> <tr> <td>CORS_ORIGIN_ALLOW_ALL</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>CORS_ORIGIN_WHITELIST</td> <td class="code"><pre>(&#x27;http://127.0.0.1:8080&#x27;, &#x27;http://localhost:8080&#x27;)</pre></td> </tr> <tr> <td>CSRF_COOKIE_AGE</td> <td class="code"><pre>31449600</pre></td> </tr> <tr> <td>CSRF_COOKIE_DOMAIN</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>CSRF_COOKIE_HTTPONLY</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>CSRF_COOKIE_NAME</td> <td class="code"><pre>&#x27;csrftoken&#x27;</pre></td> </tr> <tr> <td>CSRF_COOKIE_PATH</td> <td class="code"><pre>&#x27;/&#x27;</pre></td> </tr> <tr> <td>CSRF_COOKIE_SAMESITE</td> <td class="code"><pre>&#x27;Lax&#x27;</pre></td> </tr> <tr> <td>CSRF_COOKIE_SECURE</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>CSRF_FAILURE_VIEW</td> <td class="code"><pre>&#x27;django.views.csrf.csrf_failure&#x27;</pre></td> </tr> <tr> <td>CSRF_HEADER_NAME</td> <td class="code"><pre>&#x27;HTTP_X_CSRFTOKEN&#x27;</pre></td> </tr> <tr> <td>CSRF_TRUSTED_ORIGINS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>CSRF_USE_SESSIONS</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>DATABASES</td> <td class="code"><pre>{&#x27;default&#x27;: {&#x27;ATOMIC_REQUESTS&#x27;: False, &#x27;AUTOCOMMIT&#x27;: True, &#x27;CONN_MAX_AGE&#x27;: 0, &#x27;ENGINE&#x27;: &#x27;django.db.backends.sqlite3&#x27;, &#x27;HOST&#x27;: &#x27;&#x27;, &#x27;NAME&#x27;: &#x27;/code/db.sqlite3&#x27;, &#x27;OPTIONS&#x27;: {}, &#x27;PASSWORD&#x27;: &#x27;********************&#x27;, &#x27;PORT&#x27;: &#x27;&#x27;, &#x27;TEST&#x27;: {&#x27;CHARSET&#x27;: None, &#x27;COLLATION&#x27;: None, &#x27;MIGRATE&#x27;: True, &#x27;MIRROR&#x27;: None, &#x27;NAME&#x27;: None}, &#x27;TIME_ZONE&#x27;: None, &#x27;USER&#x27;: &#x27;&#x27;}}</pre></td> </tr> <tr> <td>DATABASE_ROUTERS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>DATA_UPLOAD_MAX_MEMORY_SIZE</td> <td class="code"><pre>2621440</pre></td> </tr> <tr> <td>DATA_UPLOAD_MAX_NUMBER_FIELDS</td> <td class="code"><pre>1000</pre></td> </tr> <tr> <td>DATETIME_FORMAT</td> <td class="code"><pre>&#x27;N j, Y, P&#x27;</pre></td> </tr> <tr> <td>DATETIME_INPUT_FORMATS</td> <td class="code"><pre>[&#x27;%Y-%m-%d %H:%M:%S&#x27;, &#x27;%Y-%m-%d %H:%M:%S.%f&#x27;, &#x27;%Y-%m-%d %H:%M&#x27;, &#x27;%m/%d/%Y %H:%M:%S&#x27;, &#x27;%m/%d/%Y %H:%M:%S.%f&#x27;, &#x27;%m/%d/%Y %H:%M&#x27;, &#x27;%m/%d/%y %H:%M:%S&#x27;, &#x27;%m/%d/%y %H:%M:%S.%f&#x27;, &#x27;%m/%d/%y %H:%M&#x27;]</pre></td> </tr> <tr> <td>DATE_FORMAT</td> <td class="code"><pre>&#x27;N j, Y&#x27;</pre></td> </tr> <tr> <td>DATE_INPUT_FORMATS</td> <td class="code"><pre>[&#x27;%Y-%m-%d&#x27;, &#x27;%m/%d/%Y&#x27;, &#x27;%m/%d/%y&#x27;, &#x27;%b %d %Y&#x27;, &#x27;%b %d, %Y&#x27;, &#x27;%d %b %Y&#x27;, &#x27;%d %b, %Y&#x27;, &#x27;%B %d %Y&#x27;, &#x27;%B %d, %Y&#x27;, &#x27;%d %B %Y&#x27;, &#x27;%d %B, %Y&#x27;]</pre></td> </tr> <tr> <td>DEBUG</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>DEBUG_PROPAGATE_EXCEPTIONS</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>DECIMAL_SEPARATOR</td> <td class="code"><pre>&#x27;.&#x27;</pre></td> </tr> <tr> <td>DEFAULT_AUTO_FIELD</td> <td class="code"><pre>&#x27;django.db.models.AutoField&#x27;</pre></td> </tr> <tr> <td>DEFAULT_CHARSET</td> <td class="code"><pre>&#x27;utf-8&#x27;</pre></td> </tr> <tr> <td>DEFAULT_EXCEPTION_REPORTER</td> <td class="code"><pre>&#x27;django.views.debug.ExceptionReporter&#x27;</pre></td> </tr> <tr> <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td> <td class="code"><pre>&#x27;django.views.debug.SafeExceptionReporterFilter&#x27;</pre></td> </tr> <tr> <td>DEFAULT_FILE_STORAGE</td> <td class="code"><pre>&#x27;django.core.files.storage.FileSystemStorage&#x27;</pre></td> </tr> <tr> <td>DEFAULT_FROM_EMAIL</td> <td class="code"><pre>&#x27;webmaster@localhost&#x27;</pre></td> </tr> <tr> <td>DEFAULT_HASHING_ALGORITHM</td> <td class="code"><pre>&#x27;sha256&#x27;</pre></td> </tr> <tr> <td>DEFAULT_INDEX_TABLESPACE</td> <td class="code"><pre>&#x27;&#x27;</pre></td> </tr> <tr> <td>DEFAULT_TABLESPACE</td> <td class="code"><pre>&#x27;&#x27;</pre></td> </tr> <tr> <td>DISALLOWED_USER_AGENTS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>EMAIL_BACKEND</td> <td class="code"><pre>&#x27;django.core.mail.backends.smtp.EmailBackend&#x27;</pre></td> </tr> <tr> <td>EMAIL_HOST</td> <td class="code"><pre>&#x27;localhost&#x27;</pre></td> </tr> <tr> <td>EMAIL_HOST_PASSWORD</td> <td class="code"><pre>&#x27;********************&#x27;</pre></td> </tr> <tr> <td>EMAIL_HOST_USER</td> <td class="code"><pre>&#x27;&#x27;</pre></td> </tr> <tr> <td>EMAIL_PORT</td> <td class="code"><pre>25</pre></td> </tr> <tr> <td>EMAIL_SSL_CERTFILE</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>EMAIL_SSL_KEYFILE</td> <td class="code"><pre>&#x27;********************&#x27;</pre></td> </tr> <tr> <td>EMAIL_SUBJECT_PREFIX</td> <td class="code"><pre>&#x27;[Django] &#x27;</pre></td> </tr> <tr> <td>EMAIL_TIMEOUT</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>EMAIL_USE_LOCALTIME</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>EMAIL_USE_SSL</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>EMAIL_USE_TLS</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>FILE_UPLOAD_HANDLERS</td> <td class="code"><pre>[&#x27;django.core.files.uploadhandler.MemoryFileUploadHandler&#x27;, &#x27;django.core.files.uploadhandler.TemporaryFileUploadHandler&#x27;]</pre></td> </tr> <tr> <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td> <td class="code"><pre>2621440</pre></td> </tr> <tr> <td>FILE_UPLOAD_PERMISSIONS</td> <td class="code"><pre>420</pre></td> </tr> <tr> <td>FILE_UPLOAD_TEMP_DIR</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>FIRST_DAY_OF_WEEK</td> <td class="code"><pre>0</pre></td> </tr> <tr> <td>FIXTURE_DIRS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>FORCE_SCRIPT_NAME</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>FORMAT_MODULE_PATH</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>FORM_RENDERER</td> <td class="code"><pre>&#x27;django.forms.renderers.DjangoTemplates&#x27;</pre></td> </tr> <tr> <td>IGNORABLE_404_URLS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>INSTALLED_APPS</td> <td class="code"><pre>[&#x27;corsheaders&#x27;, &#x27;django.contrib.admin&#x27;, &#x27;django.contrib.auth&#x27;, &#x27;django.contrib.contenttypes&#x27;, &#x27;django.contrib.sessions&#x27;, &#x27;django.contrib.messages&#x27;, &#x27;django.contrib.staticfiles&#x27;]</pre></td> </tr> <tr> <td>INTERNAL_IPS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>LANGUAGES</td> <td class="code"><pre>[(&#x27;af&#x27;, &#x27;Afrikaans&#x27;), (&#x27;ar&#x27;, &#x27;Arabic&#x27;), (&#x27;ar-dz&#x27;, &#x27;Algerian Arabic&#x27;), (&#x27;ast&#x27;, &#x27;Asturian&#x27;), (&#x27;az&#x27;, &#x27;Azerbaijani&#x27;), (&#x27;bg&#x27;, &#x27;Bulgarian&#x27;), (&#x27;be&#x27;, &#x27;Belarusian&#x27;), (&#x27;bn&#x27;, &#x27;Bengali&#x27;), (&#x27;br&#x27;, &#x27;Breton&#x27;), (&#x27;bs&#x27;, &#x27;Bosnian&#x27;), (&#x27;ca&#x27;, &#x27;Catalan&#x27;), (&#x27;cs&#x27;, &#x27;Czech&#x27;), (&#x27;cy&#x27;, &#x27;Welsh&#x27;), (&#x27;da&#x27;, &#x27;Danish&#x27;), (&#x27;de&#x27;, &#x27;German&#x27;), (&#x27;dsb&#x27;, &#x27;Lower Sorbian&#x27;), (&#x27;el&#x27;, &#x27;Greek&#x27;), (&#x27;en&#x27;, &#x27;English&#x27;), (&#x27;en-au&#x27;, &#x27;Australian English&#x27;), (&#x27;en-gb&#x27;, &#x27;British English&#x27;), (&#x27;eo&#x27;, &#x27;Esperanto&#x27;), (&#x27;es&#x27;, &#x27;Spanish&#x27;), (&#x27;es-ar&#x27;, &#x27;Argentinian Spanish&#x27;), (&#x27;es-co&#x27;, &#x27;Colombian Spanish&#x27;), (&#x27;es-mx&#x27;, &#x27;Mexican Spanish&#x27;), (&#x27;es-ni&#x27;, &#x27;Nicaraguan Spanish&#x27;), (&#x27;es-ve&#x27;, &#x27;Venezuelan Spanish&#x27;), (&#x27;et&#x27;, &#x27;Estonian&#x27;), (&#x27;eu&#x27;, &#x27;Basque&#x27;), (&#x27;fa&#x27;, &#x27;Persian&#x27;), (&#x27;fi&#x27;, &#x27;Finnish&#x27;), (&#x27;fr&#x27;, &#x27;French&#x27;), (&#x27;fy&#x27;, &#x27;Frisian&#x27;), (&#x27;ga&#x27;, &#x27;Irish&#x27;), (&#x27;gd&#x27;, &#x27;Scottish Gaelic&#x27;), (&#x27;gl&#x27;, &#x27;Galician&#x27;), (&#x27;he&#x27;, &#x27;Hebrew&#x27;), (&#x27;hi&#x27;, &#x27;Hindi&#x27;), (&#x27;hr&#x27;, &#x27;Croatian&#x27;), (&#x27;hsb&#x27;, &#x27;Upper Sorbian&#x27;), (&#x27;hu&#x27;, &#x27;Hungarian&#x27;), (&#x27;hy&#x27;, &#x27;Armenian&#x27;), (&#x27;ia&#x27;, &#x27;Interlingua&#x27;), (&#x27;id&#x27;, &#x27;Indonesian&#x27;), (&#x27;ig&#x27;, &#x27;Igbo&#x27;), (&#x27;io&#x27;, &#x27;Ido&#x27;), (&#x27;is&#x27;, &#x27;Icelandic&#x27;), (&#x27;it&#x27;, &#x27;Italian&#x27;), (&#x27;ja&#x27;, &#x27;Japanese&#x27;), (&#x27;ka&#x27;, &#x27;Georgian&#x27;), (&#x27;kab&#x27;, &#x27;Kabyle&#x27;), (&#x27;kk&#x27;, &#x27;Kazakh&#x27;), (&#x27;km&#x27;, &#x27;Khmer&#x27;), (&#x27;kn&#x27;, &#x27;Kannada&#x27;), (&#x27;ko&#x27;, &#x27;Korean&#x27;), (&#x27;ky&#x27;, &#x27;Kyrgyz&#x27;), (&#x27;lb&#x27;, &#x27;Luxembourgish&#x27;), (&#x27;lt&#x27;, &#x27;Lithuanian&#x27;), (&#x27;lv&#x27;, &#x27;Latvian&#x27;), (&#x27;mk&#x27;, &#x27;Macedonian&#x27;), (&#x27;ml&#x27;, &#x27;Malayalam&#x27;), (&#x27;mn&#x27;, &#x27;Mongolian&#x27;), (&#x27;mr&#x27;, &#x27;Marathi&#x27;), (&#x27;my&#x27;, &#x27;Burmese&#x27;), (&#x27;nb&#x27;, &#x27;Norwegian Bokmål&#x27;), (&#x27;ne&#x27;, &#x27;Nepali&#x27;), (&#x27;nl&#x27;, &#x27;Dutch&#x27;), (&#x27;nn&#x27;, &#x27;Norwegian Nynorsk&#x27;), (&#x27;os&#x27;, &#x27;Ossetic&#x27;), (&#x27;pa&#x27;, &#x27;Punjabi&#x27;), (&#x27;pl&#x27;, &#x27;Polish&#x27;), (&#x27;pt&#x27;, &#x27;Portuguese&#x27;), (&#x27;pt-br&#x27;, &#x27;Brazilian Portuguese&#x27;), (&#x27;ro&#x27;, &#x27;Romanian&#x27;), (&#x27;ru&#x27;, &#x27;Russian&#x27;), (&#x27;sk&#x27;, &#x27;Slovak&#x27;), (&#x27;sl&#x27;, &#x27;Slovenian&#x27;), (&#x27;sq&#x27;, &#x27;Albanian&#x27;), (&#x27;sr&#x27;, &#x27;Serbian&#x27;), (&#x27;sr-latn&#x27;, &#x27;Serbian Latin&#x27;), (&#x27;sv&#x27;, &#x27;Swedish&#x27;), (&#x27;sw&#x27;, &#x27;Swahili&#x27;), (&#x27;ta&#x27;, &#x27;Tamil&#x27;), (&#x27;te&#x27;, &#x27;Telugu&#x27;), (&#x27;tg&#x27;, &#x27;Tajik&#x27;), (&#x27;th&#x27;, &#x27;Thai&#x27;), (&#x27;tk&#x27;, &#x27;Turkmen&#x27;), (&#x27;tr&#x27;, &#x27;Turkish&#x27;), (&#x27;tt&#x27;, &#x27;Tatar&#x27;), (&#x27;udm&#x27;, &#x27;Udmurt&#x27;), (&#x27;uk&#x27;, &#x27;Ukrainian&#x27;), (&#x27;ur&#x27;, &#x27;Urdu&#x27;), (&#x27;uz&#x27;, &#x27;Uzbek&#x27;), (&#x27;vi&#x27;, &#x27;Vietnamese&#x27;), (&#x27;zh-hans&#x27;, &#x27;Simplified Chinese&#x27;), (&#x27;zh-hant&#x27;, &#x27;Traditional Chinese&#x27;)]</pre></td> </tr> <tr> <td>LANGUAGES_BIDI</td> <td class="code"><pre>[&#x27;he&#x27;, &#x27;ar&#x27;, &#x27;ar-dz&#x27;, &#x27;fa&#x27;, &#x27;ur&#x27;]</pre></td> </tr> <tr> <td>LANGUAGE_CODE</td> <td class="code"><pre>&#x27;en-us&#x27;</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_AGE</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_DOMAIN</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_HTTPONLY</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_NAME</td> <td class="code"><pre>&#x27;django_language&#x27;</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_PATH</td> <td class="code"><pre>&#x27;/&#x27;</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_SAMESITE</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_SECURE</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>LOCALE_PATHS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>LOGGING</td> <td class="code"><pre>{&#x27;disable_existing_loggers&#x27;: False, &#x27;filters&#x27;: {&#x27;require_debug_true&#x27;: {&#x27;()&#x27;: &#x27;django.utils.log.RequireDebugTrue&#x27;}}, &#x27;formatters&#x27;: {&#x27;collect&#x27;: {&#x27;format&#x27;: &#x27;[%(asctime)s][%(message)s]&#x27;}, &#x27;simple&#x27;: {&#x27;format&#x27;: &#x27;[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s&#x27;}, &#x27;standard&#x27;: {&#x27;format&#x27;: &#x27;[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d][%(levelname)s][%(message)s]&#x27;}}, &#x27;handlers&#x27;: {&#x27;collect&#x27;: {&#x27;backupCount&#x27;: 5, &#x27;class&#x27;: &#x27;logging.handlers.RotatingFileHandler&#x27;, &#x27;encoding&#x27;: &#x27;utf-8&#x27;, &#x27;filename&#x27;: &#x27;/code/collect.log&#x27;, &#x27;formatter&#x27;: &#x27;collect&#x27;, &#x27;level&#x27;: &#x27;INFO&#x27;, &#x27;maxBytes&#x27;: 52428800}, &#x27;console&#x27;: {&#x27;class&#x27;: &#x27;logging.StreamHandler&#x27;, &#x27;filters&#x27;: [&#x27;require_debug_true&#x27;], &#x27;formatter&#x27;: &#x27;simple&#x27;, &#x27;level&#x27;: &#x27;DEBUG&#x27;}, &#x27;default&#x27;: {&#x27;backupCount&#x27;: 3, &#x27;class&#x27;: &#x27;logging.handlers.RotatingFileHandler&#x27;, &#x27;encoding&#x27;: &#x27;utf-8&#x27;, &#x27;filename&#x27;: &#x27;/code/info.log&#x27;, &#x27;formatter&#x27;: &#x27;standard&#x27;, &#x27;level&#x27;: &#x27;INFO&#x27;, &#x27;maxBytes&#x27;: 52428800}, &#x27;error&#x27;: {&#x27;backupCount&#x27;: 5, &#x27;class&#x27;: &#x27;logging.handlers.RotatingFileHandler&#x27;, &#x27;encoding&#x27;: &#x27;utf-8&#x27;, &#x27;filename&#x27;: &#x27;/code/error.log&#x27;, &#x27;formatter&#x27;: &#x27;standard&#x27;, &#x27;level&#x27;: &#x27;ERROR&#x27;, &#x27;maxBytes&#x27;: 20971520}, &#x27;request&#x27;: {&#x27;backupCount&#x27;: 5, &#x27;class&#x27;: &#x27;logging.handlers.RotatingFileHandler&#x27;, &#x27;encoding&#x27;: &#x27;utf-8&#x27;, &#x27;filename&#x27;: &#x27;/code/request.log&#x27;, &#x27;formatter&#x27;: &#x27;simple&#x27;, &#x27;level&#x27;: &#x27;INFO&#x27;, &#x27;maxBytes&#x27;: 20971520}}, &#x27;loggers&#x27;: {&#x27;&#x27;: {&#x27;handlers&#x27;: [&#x27;default&#x27;, &#x27;console&#x27;, &#x27;error&#x27;], &#x27;level&#x27;: &#x27;DEBUG&#x27;, &#x27;propagate&#x27;: True}, &#x27;collect&#x27;: {&#x27;handlers&#x27;: [&#x27;console&#x27;, &#x27;collect&#x27;], &#x27;level&#x27;: &#x27;INFO&#x27;}, &#x27;request&#x27;: {&#x27;handlers&#x27;: [&#x27;request&#x27;], &#x27;level&#x27;: &#x27;INFO&#x27;}}, &#x27;version&#x27;: 1}</pre></td> </tr> <tr> <td>LOGGING_CONFIG</td> <td class="code"><pre>&#x27;logging.config.dictConfig&#x27;</pre></td> </tr> <tr> <td>LOGIN_REDIRECT_URL</td> <td class="code"><pre>&#x27;/accounts/profile/&#x27;</pre></td> </tr> <tr> <td>LOGIN_URL</td> <td class="code"><pre>&#x27;/accounts/login/&#x27;</pre></td> </tr> <tr> <td>LOGOUT_REDIRECT_URL</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>MANAGERS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>MEDIA_ROOT</td> <td class="code"><pre>&#x27;&#x27;</pre></td> </tr> <tr> <td>MEDIA_URL</td> <td class="code"><pre>&#x27;/&#x27;</pre></td> </tr> <tr> <td>MESSAGE_STORAGE</td> <td class="code"><pre>&#x27;django.contrib.messages.storage.fallback.FallbackStorage&#x27;</pre></td> </tr> <tr> <td>MIDDLEWARE</td> <td class="code"><pre>[&#x27;django.middleware.security.SecurityMiddleware&#x27;, &#x27;django.contrib.sessions.middleware.SessionMiddleware&#x27;, &#x27;corsheaders.middleware.CorsMiddleware&#x27;, &#x27;django.middleware.common.CommonMiddleware&#x27;, &#x27;django.middleware.csrf.CsrfViewMiddleware&#x27;, &#x27;django.contrib.auth.middleware.AuthenticationMiddleware&#x27;, &#x27;django.contrib.messages.middleware.MessageMiddleware&#x27;, &#x27;django.middleware.clickjacking.XFrameOptionsMiddleware&#x27;]</pre></td> </tr> <tr> <td>MIGRATION_MODULES</td> <td class="code"><pre>{}</pre></td> </tr> <tr> <td>MONTH_DAY_FORMAT</td> <td class="code"><pre>&#x27;F j&#x27;</pre></td> </tr> <tr> <td>NUMBER_GROUPING</td> <td class="code"><pre>0</pre></td> </tr> <tr> <td>PASSWORD_HASHERS</td> <td class="code"><pre>&#x27;********************&#x27;</pre></td> </tr> <tr> <td>PASSWORD_RESET_TIMEOUT</td> <td class="code"><pre>&#x27;********************&#x27;</pre></td> </tr> <tr> <td>PASSWORD_RESET_TIMEOUT_DAYS</td> <td class="code"><pre>&#x27;********************&#x27;</pre></td> </tr> <tr> <td>PREPEND_WWW</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>ROOT_URLCONF</td> <td class="code"><pre>&#x27;stealer.urls&#x27;</pre></td> </tr> <tr> <td>SECRET_KEY</td> <td class="code"><pre>&#x27;********************&#x27;</pre></td> </tr> <tr> <td>SECURE_BROWSER_XSS_FILTER</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SECURE_CONTENT_TYPE_NOSNIFF</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SECURE_HSTS_PRELOAD</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SECURE_HSTS_SECONDS</td> <td class="code"><pre>0</pre></td> </tr> <tr> <td>SECURE_PROXY_SSL_HEADER</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>SECURE_REDIRECT_EXEMPT</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>SECURE_REFERRER_POLICY</td> <td class="code"><pre>&#x27;same-origin&#x27;</pre></td> </tr> <tr> <td>SECURE_SSL_HOST</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>SECURE_SSL_REDIRECT</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SERVER_EMAIL</td> <td class="code"><pre>&#x27;root@localhost&#x27;</pre></td> </tr> <tr> <td>SESSION_CACHE_ALIAS</td> <td class="code"><pre>&#x27;default&#x27;</pre></td> </tr> <tr> <td>SESSION_COOKIE_AGE</td> <td class="code"><pre>1209600</pre></td> </tr> <tr> <td>SESSION_COOKIE_DOMAIN</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>SESSION_COOKIE_HTTPONLY</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>SESSION_COOKIE_NAME</td> <td class="code"><pre>&#x27;sessionid&#x27;</pre></td> </tr> <tr> <td>SESSION_COOKIE_PATH</td> <td class="code"><pre>&#x27;/&#x27;</pre></td> </tr> <tr> <td>SESSION_COOKIE_SAMESITE</td> <td class="code"><pre>&#x27;Lax&#x27;</pre></td> </tr> <tr> <td>SESSION_COOKIE_SECURE</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SESSION_ENGINE</td> <td class="code"><pre>&#x27;django.contrib.sessions.backends.db&#x27;</pre></td> </tr> <tr> <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SESSION_FILE_PATH</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>SESSION_SAVE_EVERY_REQUEST</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SESSION_SERIALIZER</td> <td class="code"><pre>&#x27;django.contrib.sessions.serializers.JSONSerializer&#x27;</pre></td> </tr> <tr> <td>SETTINGS_MODULE</td> <td class="code"><pre>&#x27;stealer.settings&#x27;</pre></td> </tr> <tr> <td>SHORT_DATETIME_FORMAT</td> <td class="code"><pre>&#x27;m/d/Y P&#x27;</pre></td> </tr> <tr> <td>SHORT_DATE_FORMAT</td> <td class="code"><pre>&#x27;m/d/Y&#x27;</pre></td> </tr> <tr> <td>SIGNING_BACKEND</td> <td class="code"><pre>&#x27;django.core.signing.TimestampSigner&#x27;</pre></td> </tr> <tr> <td>SILENCED_SYSTEM_CHECKS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>STATICFILES_DIRS</td> <td class="code"><pre>[&#x27;/code/appfront/dist/static&#x27;]</pre></td> </tr> <tr> <td>STATICFILES_FINDERS</td> <td class="code"><pre>[&#x27;django.contrib.staticfiles.finders.FileSystemFinder&#x27;, &#x27;django.contrib.staticfiles.finders.AppDirectoriesFinder&#x27;]</pre></td> </tr> <tr> <td>STATICFILES_STORAGE</td> <td class="code"><pre>&#x27;django.contrib.staticfiles.storage.StaticFilesStorage&#x27;</pre></td> </tr> <tr> <td>STATIC_ROOT</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>STATIC_URL</td> <td class="code"><pre>&#x27;/static/&#x27;</pre></td> </tr> <tr> <td>TEMPLATES</td> <td class="code"><pre>[{&#x27;APP_DIRS&#x27;: True, &#x27;BACKEND&#x27;: &#x27;django.template.backends.django.DjangoTemplates&#x27;, &#x27;DIRS&#x27;: [&#x27;appfront/dist&#x27;], &#x27;OPTIONS&#x27;: {&#x27;context_processors&#x27;: [&#x27;django.template.context_processors.debug&#x27;, &#x27;django.template.context_processors.request&#x27;, &#x27;django.contrib.auth.context_processors.auth&#x27;, &#x27;django.contrib.messages.context_processors.messages&#x27;]}}]</pre></td> </tr> <tr> <td>TEST_NON_SERIALIZED_APPS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>TEST_RUNNER</td> <td class="code"><pre>&#x27;django.test.runner.DiscoverRunner&#x27;</pre></td> </tr> <tr> <td>THOUSAND_SEPARATOR</td> <td class="code"><pre>&#x27;,&#x27;</pre></td> </tr> <tr> <td>TIME_FORMAT</td> <td class="code"><pre>&#x27;P&#x27;</pre></td> </tr> <tr> <td>TIME_INPUT_FORMATS</td> <td class="code"><pre>[&#x27;%H:%M:%S&#x27;, &#x27;%H:%M:%S.%f&#x27;, &#x27;%H:%M&#x27;]</pre></td> </tr> <tr> <td>TIME_ZONE</td> <td class="code"><pre>&#x27;Asia/Shanghai&#x27;</pre></td> </tr> <tr> <td>USE_I18N</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>USE_L10N</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>USE_THOUSAND_SEPARATOR</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>USE_TZ</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>USE_X_FORWARDED_HOST</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>USE_X_FORWARDED_PORT</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>WSGI_APPLICATION</td> <td class="code"><pre>&#x27;stealer.wsgi.application&#x27;</pre></td> </tr> <tr> <td>X_FRAME_OPTIONS</td> <td class="code"><pre>&#x27;DENY&#x27;</pre></td> </tr> <tr> <td>YEAR_MONTH_FORMAT</td> <td class="code"><pre>&#x27;F Y&#x27;</pre></td> </tr> </tbody> </table> </div> <div id="explanation"> <p> You’re seeing this error because you have <code>DEBUG = True</code> in your Django settings file. Change that to <code>False</code>, and Django will display a standard page generated by the handler for this status code. </p> </div> </body> </html>

chahushui commented 2 years ago

以上报错:docker安装

jingjianqian commented 1 year ago

+1

peihuanhuan commented 1 year ago

+1

Amewin commented 1 year ago

image

julianhu1979 commented 1 year ago

+1 前几天还可以,最近不行了。 [2022-12-25 10:56:24,036][Thread-1:140132815587072][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/download] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, *callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 42, in download return controller.download(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 42, in download response = service.download(url) File "/home/ubuntu/stealer/service/douyin.py", line 114, in download return cls.proxy_download(vtype, url, download_headers) File "/home/ubuntu/stealer/core/interface.py", line 74, in proxy_download result = cls.fetch(url, mode=mode) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) [2022-12-25 11:02:21,931][Thread-2:140009668327168][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/fetch] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, callback_args, **callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 30, in fetch return controller.fetch(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 25, in fetch result = service.fetch(url) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

moyada commented 1 year ago

+1 前几天还可以,最近不行了。 [2022-12-25 10:56:24,036][Thread-1:140132815587072][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/download] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 42, in download return controller.download(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 42, in download response = service.download(url) File "/home/ubuntu/stealer/service/douyin.py", line 114, in download return cls.proxy_download(vtype, url, download_headers) File "/home/ubuntu/stealer/core/interface.py", line 74, in proxy_download result = cls.fetch(url, mode=mode) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init*.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) [2022-12-25 11:02:21,931][Thread-2:140009668327168][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/fetch] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, callback_args, callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 30, in fetch return controller.fetch(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 25, in fetch result = service.fetch(url) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init**.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

接口被废弃了,过段再看看吧,我阳了

daxiajunjun commented 1 year ago

+1 前几天还可以,最近不行了。 [2022-12-25 10:56:24,036][Thread-1:140132815587072][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/download] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 42, in download return controller.download(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 42, in download response = service.download(url) File "/home/ubuntu/stealer/service/douyin.py", line 114, in download return cls.proxy_download(vtype, url, download_headers) File "/home/ubuntu/stealer/core/interface.py", line 74, in proxy_download result = cls.fetch(url, mode=mode) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init*.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) [2022-12-25 11:02:21,931][Thread-2:140009668327168][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/fetch] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, callback_args, callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 30, in fetch return controller.fetch(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 25, in fetch result = service.fetch(url) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init**.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

接口被废弃了,过段再看看吧,我阳了

老哥保重啊,要多躺着休息啊