20230720在ubuntu22.04系统下载+解密+合并ts切片的步骤

这篇具有很好参考价值的文章主要介绍了20230720在ubuntu22.04系统下载+解密+合并ts切片的步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

20230720在ubuntu22.04系统下载+解密+合并ts切片的步骤
2023/7/20 23:06


1、视频源头,打开时效肯定有时间限制的!
【并且不同时间打开,下载链接/参数会有区别的!以前的链接就会失效/出错了!】

https://app1ce7glfm1187.h5.xiaoeknow.com/v2/course/alive/l_64af6130e4b03e4b54da1681?type=2&app_id=app1cE7gLFM1187&pro_id=term_645c69388953e_Nhew9A&available=true&share_user_id=u_5e59118832c25_IrOax1kylJ&share_type=5&scene=%E5%88%86%E4%BA%AB&share_scene=1&entry=2&entry_type=2002
2023-07-15 1530逆势增长:新一代企业经营者的能力构建-高手知路.ts


2、使用python脚本将下载的ts切片顺序命名,方便将来的/下一步合并:
(暂时最高支持6000个ts切片,如果有需要/更多可以更改循坏的终点值)
001.ts-999.ts
1000.ts-6000.ts

D:\ZIP\20230715\delete-jin6.py
#with open("5060_XhZCF6k4srMrcrGX_24481610.m3u8") as f:
#with open("5060_tZ8MCtBms2EFQi76_85905257.m3u8") as f:
#with open("5060_BHDBEMAMThXAMkzC_83736491.m3u8") as f:
#with open("5060_6f4aaa46b800eb11g_65368069.m3u8") as f:
#with open("playlist_eof.m3u8") as f:
#with open("playlist.f3.m3u8") as f:
with open("v.f146750.m3u8") as f:
#with open("v.f421220.m3u8") as f:
#with open("v.f146750.m3u8") as f:
    lines = f.readlines()

for line in lines:
    #if line[0] == 'h':
    #if line[0] == 'p':
    if line[0] == 'v':
    #if line[0] == '1':
    #if line[0] == '2':
    #if line[0] == '3':
    #if line[0] == '4':
    #if line[0] == '5':
    #if line[0] == '6':
    #if line[0] == '7':
    #if line[0] == '8':
    #if line[0] == '9':
        #print(line.rstrip())
        print("https://btt-vod.xiaoeknow.com/9764a7a5vodtransgzp1252524126/d362ace83270835010715022023/drm/"+line.rstrip())
        #print(line.rstrip())


Microsoft Windows [版本 10.0.19045.2311]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>cd D:\ZIP\20230715

C:\Users\Administrator>d:

D:\ZIP\20230715>dir
 驱动器 D 中的卷是 SOFT
 卷的序列号是 0ACA-475A

 D:\ZIP\20230715 的目录

2023/07/22  23:02    <DIR>          .
2023/07/22  23:02    <DIR>          ..
2023/07/22  23:02           950,966 1574.txt
2023/07/20  23:12           946,492 1574旧的.txt
2023/07/22  23:01               950 delete-jin6.py
2023/07/22  23:01           615,787 v.f146750.m3u8
2023/07/20  22:54           615,787 v.f146750旧的.m3u8
2023/07/18  23:42             3,333 新建文本文档-旧的.txt
2023/07/22  23:01             4,169 新建文本文档.txt
               7 个文件      3,137,484 字节
               2 个目录 24,042,561,536 可用字节

D:\ZIP\20230715>python delete-jin6.py


原理:
(一)将原始的m3u8处理为真实的下载链接:【】
原始:m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="https://app.xiaoe-tech.com/get_video_key.php?edk=CiC4VtGs01Wqn9bzplV30xTHXBpeJ584cjeCi2paoN1uuxCO08TAChiaoOvUBCokYjRhNjFiNTgtMmVhNy00OWYxLTgwZGMtZTE0NTIyODc5YWIy&fileId=3270835010715022023&keySource=VodBuildInKMS",IV=0x00000000000000000000000000000000
#EXTINF:2.000000,
v.f146750_0.ts?start=0&end=108479&type=mpegts&sign=5766b75a00b62cece0007a8dcf49d6cd&t=64b9f2c3&us=ZviMNiFKSh
#EXTINF:2.000000,
v.f146750_0.ts?start=108480&end=216399&type=mpegts&sign=5766b75a00b62cece0007a8dcf49d6cd&t=64b9f2c3&us=ZviMNiFKSh
#EXTINF:2.000000,


(二)从猫抓中拷贝的部分真实路径:
https://btt-vod.xiaoeknow.com/9764a7a5vodtransgzp1252524126/d362ace83270835010715022023/drm/v.f146750.m3u8?sign=5766b75a00b62cece0007a8dcf49d6cd&t=64b9f2c3&us=ZviMNiFKSh&time=1689864706616&uuid=u_6165733764809_rUxpVMZk1O
https://btt-vod.xiaoeknow.com/9764a7a5vodtransgzp1252524126/d362ace83270835010715022023/drm/v.f146750_0.ts?start=0&end=108479&type=mpegts&sign=5766b75a00b62cece0007a8dcf49d6cd&t=64b9f2c3&us=ZviMNiFKSh
https://btt-vod.xiaoeknow.com/9764a7a5vodtransgzp1252524126/d362ace83270835010715022023/drm/v.f146750_0.ts?start=108480&end=216399&type=mpegts&sign=5766b75a00b62cece0007a8dcf49d6cd&t=64b9f2c3&us=ZviMNiFKSh


(三)将m3u8中以v开头的行真实链接和从猫抓中拷贝的部分真实路径【头】合并!:1574.txt
将字符串合并得到:最终的真实的下载链接:
https://btt-vod.xiaoeknow.com/9764a7a5vodtransgzp1252524126/d362ace83270835010715022023/drm/v.f146750_0.ts?start=0&end=108479&type=mpegts&sign=5766b75a00b62cece0007a8dcf49d6cd&t=64b9f2c3&us=ZviMNiFKSh
https://btt-vod.xiaoeknow.com/9764a7a5vodtransgzp1252524126/d362ace83270835010715022023/drm/v.f146750_0.ts?start=108480&end=216399&type=mpegts&sign=5766b75a00b62cece0007a8dcf49d6cd&t=64b9f2c3&us=ZviMNiFKSh


3、下载加密的ts视频切片:
D:\ZIP\ts1574.py
import requests
from multiprocessing import Pool

def mission(url,n):
    headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"}
    print('*****')
    response=requests.get(url,headers=headers)
    print('-----')
    #f=open("./1/%03d.ts"%n,"wb")
    f=open("./1574/%03d.ts"%n,"wb")
    f.write(response.content)      
    f.close()
    print("%03d.ts OK..."%n)


if __name__ == "__main__":
    #f = open("f:\\p1\\1574.txt")
    #f = open("g:\\1575\\1574.txt")
    #f = open("1574.txt")
    f = open("d:\\ZIP\\1574.txt")
    
    pool=Pool(20)  
    #for n in range(1,1574):
    #for n in range(1,2000):
    #for n in range(1,4000):
    for n in range(1,6000):
        line = f.readline()
        #pool.apply_async(mission,(line,n))
        pool.apply_async(mission,(line.rstrip(),n))
    pool.close()
    pool.join()
    
    print('\n 2022/9/13 23:01-finish')
    print(n)


Microsoft Windows [版本 10.0.19045.2311]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>cd d:\ZIP\

C:\Users\Administrator>
C:\Users\Administrator>d:

d:\ZIP>
d:\ZIP>python ts1574.py


4、生成通过openssl以AES-128加密模式解密ts切片的脚本并解密ts切片:
write.py
# openssl aes-128-cbc -d -in 001.ts -out 001xx.ts  -nosalt -iv 00000000000000000000000000000000 -K 34961199b37742b8b9174b6102af4a9c
for n in range(1,6000):
    #print("https://btt-vod.xiaoeknow.com/522ff1e0vodcq1252524126/da99c7ef3270835010800009264/"+line.rstrip())
    #print("openssl aes-128-cbc -d -in 000.ts -out 000xx.ts  -nosalt -iv 00000000000000000000000000000000 -K 0b53fbec72cb3a6d4d9c8efbc23a025e"+line.rstrip())
    #print("openssl aes-128-cbc -d -in 000.ts -out 000xx.ts  -nosalt -iv 00000000000000000000000000000000 -K 0b53fbec72cb3a6d4d9c8efbc23a025e")
    #f=open("./1574/%03d.ts"%n,"wb")
    #print("openssl aes-128-cbc -d -in %03d.ts -out 000xx.ts  -nosalt -iv 00000000000000000000000000000000 -K 0b53fbec72cb3a6d4d9c8efbc23a025e"%n)
    #print("openssl aes-128-cbc -d -in %03d.ts -out xx/%03d.ts  -nosalt -iv 00000000000000000000000000000000 -K 0b53fbec72cb3a6d4d9c8efbc23a025e"%n, %n)
    #print("openssl aes-128-cbc -d -in %03d.ts -out xx/%03d.ts  -nosalt -iv 00000000000000000000000000000000 -K 0b53fbec72cb3a6d4d9c8efbc23a025e"%n%n)
    #print("openssl aes-128-cbc -d -in %03d.ts -out xx/%03d.ts  -nosalt -iv 00000000000000000000000000000000 -K 0b53fbec72cb3a6d4d9c8efbc23a025e"%n%n)
    #print("{} + {} = {}".format(1,2,3))
    #print("openssl aes-128-cbc -d -in {%03d}.ts -out xx/{%03d}.ts  -nosalt -iv 00000000000000000000000000000000 -K 0b53fbec72cb3a6d4d9c8efbc23a025e".format(n, n))
    #print("openssl aes-128-cbc -d -in {}.ts -out xx/{}.ts  -nosalt -iv 00000000000000000000000000000000 -K 0b53fbec72cb3a6d4d9c8efbc23a025e".format(n, n))
    #'{value:0>6d}'.format(value=6666)
    print("openssl aes-128-cbc -d -in {:0>3d}.ts -out xx/{:0>3d}.ts  -nosalt -iv 00000000000000000000000000000000 -K 0b53fbec72cb3a6d4d9c8efbc23a025e".format(n, n))

20230720在ubuntu22.04系统下载+解密+合并ts切片的步骤,杂质,杂质

 

20230720在ubuntu22.04系统下载+解密+合并ts切片的步骤,杂质,杂质

 


Microsoft Windows [版本 10.0.19045.2311]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>cd D:\ZIP

C:\Users\Administrator>d:

D:\ZIP>dir
 驱动器 D 中的卷是 SOFT
 卷的序列号是 0ACA-475A

 D:\ZIP 的目录

2023/07/22  23:43    <DIR>          .
2023/07/22  23:43    <DIR>          ..
2023/07/22  23:39             4,368 12jia.py
2023/07/22  23:28    <DIR>          1574
2023/07/22  23:02           950,966 1574.txt
2023/07/22  23:10       495,640,050 1574a只有加密的.zip
2023/07/22  23:38       994,470,172 1574b加密+解密.zip
2023/07/22  23:02    <DIR>          20230715
2023/07/20  22:58             1,189 get_video_key.mhtml
2023/07/20  23:00                16 get_video_key.php
2023/07/22  23:41       500,611,288 output.ts
2023/07/22  12:31               994 ts1574.py
2023/07/19  20:34             1,750 write.py
2023/03/18  19:04             4,992 !!!!20160908如何将多段ts文件合并成一个ts文件.txt
              10 个文件  1,991,685,785 字节
               4 个目录 24,044,519,424 可用字节

D:\ZIP>
D:\ZIP>python write.py > 1574\decrypt.bat

D:\ZIP\1574>decrypt.bat


5、合并切片:
Z:\zip\12jia.py

temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
for n in range(1,999):
    #temp = "./1574/xx/%03d.ts"%n
    temp = "%03d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%03d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output1.ts"
url = url + temp

f=open("./1574/xx/1.bat","w")
f.write(url)
f.close()


temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
for n in range(1000,2000):
    #temp = "./1574/xx/%03d.ts"%n
    temp = "%03d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%04d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output2.ts"
url = url + temp

f=open("./1574/xx/2.bat","w")
f.write(url)
f.close()


temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
for n in range(2001,3000):
    #temp = "./1574/xx/%03d.ts"%n
    temp = "%03d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%04d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output3.ts"
url = url + temp

f=open("./1574/xx/3.bat","w")
f.write(url)
f.close()


temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
#for n in range(3001,3389):
for n in range(3001,4000):
    #temp = "./1574/xx/%03d.ts"%n
    temp = "%03d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%04d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output4.ts"
url = url + temp

f=open("./1574/xx/4.bat","w")
f.write(url)
f.close()


temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
for n in range(4001,5000):
    #temp = "./1574/xx/%03d.ts"%n
    temp = "%03d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%04d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output5.ts"
url = url + temp

f=open("./1574/xx/5.bat","w")
f.write(url)
f.close()

temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
for n in range(5001,6000):
    #temp = "./1574/xx/%03d.ts"%n
    temp = "%03d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%04d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output6.ts"
url = url + temp

f=open("./1574/xx/6.bat","w")
f.write(url)
f.close()


temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
for n in range(6001,7000):
    #temp = "./1574/xx/%04d.ts"%n
    temp = "%03d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%04d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output7.ts"
url = url + temp

f=open("./1574/xx/7.bat","w")
f.write(url)
f.close()


temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
for n in range(7001,8000):
    #temp = "./1574/xx/%04d.ts"%n
    temp = "%03d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%04d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output8.ts"
url = url + temp

f=open("./1574/xx/8.bat","w")
f.write(url)
f.close()

temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
for n in range(8001,9000):
    #temp = "./1574/xx/%04d.ts"%n
    temp = "%03d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%04d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output9.ts"
url = url + temp

f=open("./1574/xx/9.bat","w")
f.write(url)
f.close()


temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
for n in range(9001,10000):
    #temp = "./1574/xx/%03d.ts"%n
    temp = "%04d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%04d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output10.ts"
url = url + temp

f=open("./1574/xx/10.bat","w")
f.write(url)
f.close()


temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
for n in range(10001,11000):
    #temp = "./1574/xx/%03d.ts"%n
    temp = "%03d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%04d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output11.ts"
url = url + temp

f=open("./1574/xx/11.bat","w")
f.write(url)
f.close()

temp = ""
url = "ffmpeg -i \"concat:"

#for n in range(1,10):
for n in range(11001,12000):
    #temp = "./1574/xx/%05d.ts"%n
    temp = "%03d.ts|"%n
    url = url + temp
    #print(temp)
    #print(url)

temp = "%05d.ts"%(n+1)
url = url + temp

    
temp = "\" -c copy output12.ts"
url = url + temp

f=open("./1574/xx/12.bat","w")
f.write(url)
f.close()


D:\ZIP\1574\xx>
D:\ZIP\1574\xx>1.bat
D:\ZIP\1574\xx>2.bat
D:\ZIP\1574\xx>3.bat
D:\ZIP\1574\xx>4.bat
D:\ZIP\1574\xx>5.bat

D:\ZIP\1574\xx>ffmpeg -i "concat:output1.ts|output2.ts|output3.ts|output4.ts|output5.ts" -c copy output.ts
D:\ZIP\1574\xx>
【5.bat需要拿掉后面没有的文件/ts切片!】

参考资料:
https://www.cnblogs.com/faberbeta/p/ffmpeg001.html
Linux 下使用 ffmpeg 大批量合并 ts 文件, mp4切割文件为m3u8


https://blog.csdn.net/oncealong/article/details/82785642
hls视频的加解密示例


https://blog.csdn.net/nizhengjia888/article/details/78041945
解密HLS中的AES加密


https://blog.csdn.net/oncealong/article/details/82785447
使用openssl命令加解密 aes-128-cbc的简单示例


https://blog.csdn.net/ddddfang/article/details/92838200
xxd命令


https://blog.csdn.net/y534560449/article/details/116531326
!!!!使用 FFmpeg 生成 ts 切片并使用 AES-128 加密


https://blog.csdn.net/beyond706/article/details/111772810
!!!!使用openssl m3u8解密 EXT-X-KEY:METHOD=AES-128,URI=xxx


https://blog.csdn.net/u014470361/article/details/90705336
ubuntu16.04安装ffmpeg最新版


https://blog.csdn.net/huangjingshui/article/details/75003771
如何查看openssl版本号

openssl version
openssl version -a文章来源地址https://www.toymoban.com/news/detail-606318.html

到了这里,关于20230720在ubuntu22.04系统下载+解密+合并ts切片的步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 电脑安装ubuntu22.04系统

    关于我 🏠 工作 | 杭州 ⭐ framework开发工程师(嵌入式软件开发工程师) ✈️公众号 | 好学程序员 ✈️微信 | l15228913797 🚀 邮箱 | 394651421@qq.com 安装系统就是从U盘启动盘去启动,利用U盘中的镜像来为电脑安装系统 不同电脑从U盘启动的方式可能不一样,一般也就两种方式 方

    2024年04月22日
    浏览(77)
  • Ubuntu22.04系统更换源操作

    1、备份原本的Ubuntu22.04系统的软件源文件 2、删除原本的Ubuntu22.04系统软件源 或者 3、添加软件源 清华源 阿里源 中科大源 网易源 更换成阿里源的图如下所示: 4、更新源和软件

    2024年01月20日
    浏览(46)
  • 双系统ubuntu18.04如何更新到22.04

    将双系统中的Ubuntu 18.04更新到22.04,按照以下步骤操作: 1.打开终端并更新系统,使用以下命令: 2.确保系统是最新的,然后备份数据,以防万一。 3.执行以下命令,安装 update-manager-core: 4.执行以下命令,将Ubuntu 18.04升级到20.04: 如果没有升级到20.04,请参考以下内容: 1.确

    2024年02月04日
    浏览(77)
  • ubuntu22.04备份系统的完整操作过程

    名称    用于    大小    挂载点    分区类型    说明 EFI分区    efi    512M        主分区    第一个设置项 /boot    ext4    512M    /boot    逻辑分区     交换区    交换区间    4G(电脑内存够大的化不用划分)        逻辑分区     /    ext4    40

    2024年02月05日
    浏览(51)
  • Ubuntu 22.04系统设置固定IP地址

    打开网络配置文件: sudo vi /etc/netplan/00-installer-config.yaml 在文件中添加以下内容: network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no addresses: [192.168.1.10/24] gateway4: 192.168.1.1 nameservers: addresses: [192.168.1.1] 其中,eth0是要设置的网络接口名称,addresses是要设置的IP地址和子网掩码,

    2024年02月03日
    浏览(70)
  • Windows11+Ubuntu20.04系统重装(升级为Ubuntu22.04)

    事情起因是标题所对应的双系统中,Ubuntu老自动断电关机,一开始是跑大型程序才会关机,这两天愈演愈烈变成运行一个远程控制或者VSCode就会关机。一怒之下找了Dell在线客服,在对方引导下检测了硬件系统,发现没有明显故障,对方建议重装出问题的软件后看现象是否消失

    2024年04月26日
    浏览(56)
  • 联想电脑安装Ubuntu22.04系统详细教程

    1.准备好镜像文件和U盘制作程序 2.选择U盘格式,我这里是FAT32,will wipe表示清除整个U盘。 确定,耐心等待等它制作好 3.开机进入BIOS系统,联想是F2键,在BOOT菜单下,将Boot Mode选择为UEFI模式,USB Boot选项设置为Enabled,在EFI菜单下选择USB项(后面有U盘的标识)按Fn+F6将其移至最

    2024年02月16日
    浏览(62)
  • Ubuntu22.04和Windows10双系统安装

    本篇演示Ubuntu22.04和Windows10双系统的安装。先安装Ubuntu22.04,再安装Windows10。 笔者的电脑品牌是acer(宏碁/宏基) 电脑开机按F2进入BIOS 电脑开机按F12进入Boot  Manager 需要用到两个U盘启动盘 (1)Ubuntu22启动U盘 这个U盘的作用有三个:格式化电脑磁盘、作为Ubuntu22.04的安装来源、调

    2024年02月22日
    浏览(59)
  • Ubuntu22.04 系统 安装驱动 && CUDA11.8

    参考: https://blog.csdn.net/weixin_43387635/article/details/126749463 Ubuntu22.04安装显卡驱动(高速、避错版)-CSDN博客 -------------------------------------------------安装驱动-------------------------------------------------------------------- 原作者说 需要注意的两条 ①   安装之前进入主板BIOS,关闭安全启动!!

    2024年03月27日
    浏览(68)
  • Ubuntu 22.04系统如何设置固定IP地址。

    在Ubuntu 22.04上设置固定IP地址,您可以按照以下步骤进行操作: 打开终端,以管理员权限编辑网络配置文件: 在文件中,您会看到类似以下内容的配置: 将  dhcp4: true  修改为  dhcp4: no ,以禁用DHCP并启用手动配置。 添加静态IP地址配置,例如: 将  enp0s3  替换为您的网络接

    2024年02月17日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包