返回 douyin-downloader
silent_audio.py
根目录 / core / silent_audio.py
1 """1 second silence MP3 (mono, 16 kHz, 32 kbps).
2
3 Used by the Test_Connectivity_Probe in
4 ``server/app.py:transcript_test_connectivity()``. Embedding the bytes as a
5 base64 literal keeps the resource self-contained, so we never need to chase
6 PyInstaller resource paths (``sys._MEIPASS`` etc.) at runtime.
7
8 Regeneration (run on a developer machine when ffmpeg or its libmp3lame
9 encoder produces meaningfully different output)::
10
11 FFMPEG=$(python -c "import imageio_ffmpeg; print(imageio_ffmpeg.get_ffmpeg_exe())")
12 "$FFMPEG" -loglevel error -f lavfi \\
13 -i "anullsrc=r=16000:cl=mono" -t 1 -b:a 32k -f mp3 -y silent_1s.mp3
14 base64 silent_1s.mp3 | tr -d '\\n'
15 """
16 import base64
17
18 _SILENT_1S_MP3_B64 = (
19 "SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYxLjcuMTAwAAAAAAAAAAAAAAD/81jAAAAAAAAA"
20 "AAAASW5mbwAAAA8AAAAeAAARlAASEhIaGhoiIiIrKysrMzMzOzs7Q0NDQ0tLS1NTU1xcXFxk"
21 "ZGRsbGx0dHR0fHx8hYWFjY2NjZWVlZ2dnaWlpaWurq62tra+vr6+xsbGzs7O19fX19/f3+fn"
22 "5+/v7+/39/f///8AAAAATGF2YzYxLjE5AAAAAAAAAAAAAAAAJALAAAAAAAAAEZSi1O/oAAAA"
23 "AAAAAAAAAAD/80jEAAAAA0gAAAAATEFNRVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV"
24 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
25 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA"
26 "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
27 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
28 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5"
29 "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
30 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
31 "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV"
32 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
33 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA"
34 "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
35 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
36 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5"
37 "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
38 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
39 "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV"
40 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
41 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA"
42 "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
43 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
44 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5"
45 "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
46 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
47 "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV"
48 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
49 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA"
50 "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
51 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
52 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5"
53 "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
54 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
55 "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV"
56 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
57 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA"
58 "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
59 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
60 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5"
61 "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
62 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
63 "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV"
64 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
65 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA"
66 "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
67 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
68 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5"
69 "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
70 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
71 "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV"
72 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
73 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA"
74 "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
75 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
76 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5"
77 "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
78 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
79 "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV"
80 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
81 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA"
82 "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
83 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
84 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5"
85 "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
86 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
87 "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV"
88 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
89 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA"
90 "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
91 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
92 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5"
93 "LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
94 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
95 "VVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVV"
96 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
97 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gA"
98 "AAAAVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
99 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
100 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/80jEfAAAA0gAAAAAVVVVVVVVVVVVVVVVVVVV"
101 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
102 "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
103 "VVVVVVVVVVU="
104 )
105
106 SILENT_1S_MP3_BYTES: bytes = base64.b64decode(_SILENT_1S_MP3_B64)
107 """1 second mono 16 kHz 32 kbps MP3, ~4.4 KB."""
108
109 __all__ = ["SILENT_1S_MP3_BYTES"]
110
110 lines PYTHON