Cai
2026-08-09 89c1e07fd46e685928f66d70d752697dc6e067a5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
"""Frozen identities and limits for the authenticated ingress."""
 
from __future__ import annotations
 
TARGET_BVID = "BV1HA3o6oEJJ"
CANONICAL_URL = "https://www.bilibili.com/video/BV1HA3o6oEJJ"
TARGET_PATH = "/video/BV1HA3o6oEJJ"
EXPECTED_DURATION_MS = 3_133_950
DURATION_TOLERANCE_MS = 3_134
 
SCHEMA_VERSION = 2
HOST_NAME = "com.project_info.bili_auth_ingress"
EXTENSION_BUILD = "project-info-bili-auth-ingress/1.0.0+20260805.v002"
HOST_BUILD = "project-info-bili-auth-native-host/1.0.0+20260805.v002"
EXPECTED_EXTENSION_ID = "oidmclckpdmpabbfedplkbdplmfcenbb"
EXPECTED_ORIGIN = f"chrome-extension://{EXPECTED_EXTENSION_ID}/"
PUBLIC_KEY_DER_SHA256 = (
    "E83C2B2AF3CF011543FBA13FBC524D1122EEA68548F9F27B9F7A82B5D594666C"
)
MANIFEST_PUBLIC_KEY = (
    "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt2dT1HGYaI0DXM7zZwOTNBWX"
    "TKlMBJMpyDVjRUc+v6bUotmLyoraC+ay2scy9UQluSZVYq0tS8qvQNNvuZOlc5w2bOEx"
    "m4TH2IIKvaVO8nVthHBnNz2kXdiM8ItN0vPZEmS+8gpTCI1+6wPTuUglMoXpqYBYhii8"
    "fJ5RkENRF3PRJBBigGt8soqdBFRY1QZUmpQv9dYw4dRq4L2C4QtBgClUg4bQpuCppiVZ"
    "9LHbePi9IAjc9r9R93KLzpaBuXdJpfVRE5w/6YHnxP8ovXxBdl7XktmrdH3xj7mWT7Q7"
    "ZBxkDNwn2RkruD45XgDD3yuNxOYSkLFMkseN+Ua69gSS4wIDAQAB"
)
 
MAX_INPUT_FRAME = 131_072
MAX_OUTPUT_FRAME = 16_384
MAX_COOKIE_COUNT = 128
MAX_SAFE_INTEGER = (1 << 53) - 1
 
SOCKET_TIMEOUT_SECONDS = 20
EXTRACTOR_RETRIES = 1
HTTP_RETRIES = 2
FRAGMENT_RETRIES = 2
FILE_ACCESS_RETRIES = 1
METADATA_TIMEOUT_SECONDS = 120
DOWNLOAD_TIMEOUT_SECONDS = 7_200
BRIDGE_TIMEOUT_SECONDS = 900
GRACEFUL_CANCEL_SECONDS = 3
JOB_WAIT_SECONDS = 5
THREAD_JOIN_SECONDS = 5
 
YTDLP_VERSION = "2026.07.04"
YTDLP_MODULE_SHA256 = {
    "version.py": "3848D30C4990355374A1198AD6DAAAB212CD3EF2C92BEA32FA970D913B5EB79F",
    "__init__.py": "AA2C9CF5A6F2E1D97EFB6EE13DDCE83CACCE4BEF7D6BDC15E5B5F53AF90BB902",
    "YoutubeDL.py": "41E83B95FCE4A59F09746D0804D80CCFA8489C62C81D2CDFA20CE0E835611A17",
    "plugins.py": "106991D3275A6A136CA46AE0B334CD5F8F988C77BDDD638E85CC3581FE8F652B",
    "globals.py": "CD5AFD8A68685DC5C7A02B55D1502B4F9FBE1069A33B571F3B120ABB8C42CD23",
    "cookies.py": "BAF3B9AF355B436D4DA1C03D88A93349D88833E6D452B255DD4DB93D953B2D21",
    "extractor/common.py": "539BB835D6FBFBD32BCC2B4E743F2E99E61B8860DC1962B0D714A9DAEC569352",
    "extractor/bilibili.py": "B99AD995A016B11097CDADFB64BC6DA55CD64129B76E7914EAFBC7E45685EC33",
    "downloader/__init__.py": "0342E193CB315D6B89384645501761C47A0C5A70D289FE60FF43D67D591E17F7",
    "downloader/common.py": "EE2E5CD7959FF3C19247E4CED7579037963E1A372875BC67A097B887A60D453B",
    "downloader/http.py": "E111FFFDC894F68253CE3C5155FA1AA7390E58CAA9A33EEB28D9EF78134E2CD0",
    "downloader/dash.py": "92B6C7C0944AF2620A1F9581DD6E1EF177059519B480581B990047B53F0AE4A9",
    "downloader/hls.py": "EFE86E1183B652C1B96254462A79C31924551E5ABC990BBC765C43E307FA460A",
    "downloader/external.py": "3577991E61D3E4055EB534AF7B9B7AE00E2A2D308A3944FE8CAF0C2E4391E11C",
    "networking/__init__.py": "B3CA5D8084AEDA1349AF610F532D492225B3990245EB4DB88D084ECA2667CB4F",
    "networking/common.py": "2647275C8A8C49DC61E36B371BE1D1794D639C015CA73BD9837D710045FF7BF9",
    "networking/_helper.py": "F7C064184C9CBFBEB3C22BF41218004B30E602D1686599FBAA82FEF1E0C60799",
    "networking/_urllib.py": "3454CE495D524833D8D978B86B5437B8C390E89B31E5E153CAF2D57C8DF557DE",
    "utils/_utils.py": "9200BE7E89F04B51243FE20643BC0FAC16186A91FF6B588456E95BC2670F7EB8",
    "postprocessor/__init__.py": "3960A70BCBE4E01B5E08020156B9F0316AF5D98EB3CB53E20479849C067DB505",
    "postprocessor/common.py": "4C6BF888FED859FFFF3E649215686BBEC873670DFECA5F14AF3A21D1DA12CBEB",
    "postprocessor/ffmpeg.py": "3FB12E0FDA8271D33EC3284F42D87A0141A1C3415B9B78B2790B12D536A670F5",
}
 
SAFE_PHASES = {
    "IDLE",
    "READY",
    "CHECKING",
    "DOWNLOADING",
    "MERGING",
    "VALIDATING",
    "PUBLISHING",
    "COMPLETE",
    "FAILED",
    "CANCELED",
}