乱码三千 – 分享实用IT技术

乱码三千 – 码出一个新世界


  • 首页

  • 归档

  • 搜索

acme.sh证书自动部署教程

发表于 2022-09-02

前言

本页面介绍了 ACME.sh 结合 CertCloud 的部署流程。

在开始之前需要完成 证书ACME自动部署 页面的前两个步骤。

创建 ACME 目录 URL

  1. 登录 CertCloud 账户,点击【自动化】->【ACME】->【添加 ACME 目录 URL】 ACME URL 生成操作步骤
  2. 在弹出框中输入具有标识性的名称,选择证书来源[订单,产品],选择相应的订单或产品 组织 ,点击【添加】按钮。ACME 界面会新增一条记录。
  3. ACME 界面会新增一条记录 ,点击对应记录的 【部署】 按钮,在跳转的页面选择 acme.sh,点击复制图标复制 acme.sh 部署命令 。

当前,CertCloud ACME 仅支持 OV 和 EV TLS / SSL 证书。
如果需要查看详细的 ACME URL ,则只需要点击对应数据的“ 部署 ”按钮,就可以看到详细的 ACME URL 信息。

安装

官网:ACME.sh GitHub项目地址

1
curl  https://get.acme.sh | sh

普通用户和 root 用户都可以安装使用。

安装过程:

  1. 默认安装 acme.sh 到你的 home 目录下:
1
#cd ~/.acme.sh/

为了方便使用 acme.sh,可以创建 一个 bash 的 alias:

1
alias acme.sh=~/.acme.sh/acme.sh

颁发并安装证书

  1. 通过 SSH 连接到安装有 ACME 客户端的 Web 服务器。
  2. 在终端提示符下,使用 ACME.sh 客户端命令执行上述复制的颁发命令请求证书。ACME.sh 客户端颁发、安装以及重颁发示例:
1
2
3
4
5
6
7
8
# 获取
sudo acme.sh --issue -d DOMAIN --dns DNS_TYPE --server YOUR-ACME-URL --days DAYS

# 安装
sudo acme.sh --installcert -d DOMAIN --key-file YOUR-KEY.pem --fullchain-file YOUR-CERT.pem --reloadcmd "YOUR-SERVER-RELOAD"

# 获取并安装(以上两条命令合在一起)
sudo acme.sh --issue -d DOMAIN --dns DNS_TYPE --server YOUR-ACME-URL --days DAYS && sudo acme.sh --installcert -d DOMAIN --key-file YOUR-KEY.pem --fullchain-file YOUR-CERT.pem --reloadcmd "YOUR-SERVER-RELOAD"
  • DOMAIN 需要替换为申请时提交的域名信息,可以为多个。
  • DNS_TYPE 为需要验证的域名的 DNS 的类型,不同的类型需要配置不同的环境变量。(预审核通过的可以直接配置为 dns_dp ,不需要配置密钥信息)
  • DAYS 为申请的证书的请求周期,应比当前订单的密钥轮换周期时间小。
  • YOUR-ACME-URL 为先前创建的 ACME 目录 URL (请参阅 创建 ACME 目录 URL)。
  • YOUR-KEY.pem 表示服务配置的证书私钥的路径地址信息。
  • YOUR-CERT.pem 表示服务配置的证书文件的路径地址信息。
  • YOUR-SERVER-RELOAD 表示服务重载服务的命令。(具体的实例,可以看下方的 ACME.sh 部分常用命令)

注:可以根据自己的需要和服务器环境自定义 ACME 客户端执行命令。

ACME返回的错误和错误消息与 CertCloud API 中返回的错误和错误消息相同。有关错误代码及其含义的列表,请参见 Open API 错误。

完成后,终端将显示一条成功消息
恭喜你!ACME 证书请求已完成,并且新发行的证书已安装(保存)在 Web 服务器上。可以访问网站以确认安装成功。

常用命令

为了更方便使用,提供了部分 ACME.sh 的常用命令。

字段信息 解释
- -issue 签发请求
- -days [days] 请求签发证书的周期,配合 –issue 使用
- -server [ACME 目录 URL] 证书服务商的 ACME 目录 URL,配合 –issue 使用
- -installcert 安装证书
-d [网站域名] 配置证书的域名信息
- -webroot [网站跟文件路径] 文件验证需要的网站跟文件路径
- -dns [DNS类型] 配置验证域名的DNS信息
- -cert-file [证书保存的路径] 安装证书保存的路径
- -key-file [私钥保存的路径] 安装私钥保存的路径
- -fullchain-file [证书链保存的路径] 安装证书链保存的路径
- -reloadcmd [Web 重载命令] 安装证书完成之后Web服务的重载命令
  1. 文件验证

    1
    acme.sh  --issue  -d mydomain.com -d www.mydomain.com  --webroot  /home/wwwroot/mydomain.com/ --server https://acme.certcloud.cn/acme/directory/XXX
  2. DNS 验证( 以 DNSPod ,阿里 DNS 为例)

    1
    2
    3
    4
    5
    6
    7
    export DP_Id="XXX"
    export DP_Key="XXX"
    acme.sh --issue --dns dns_dp -d aa.com -d www.aa.com --server https://acme.certcloud.cn/acme/directory/XXX

    export Ali_Key="XXX"
    export Ali_Secret="XXX"
    acme.sh --issue --dns dns_ali -d example.com -d www.example.com --server https://acme.certcloud.cn/acme/directory/XXX

    更多支持的DNS类型详见 [ACME.sh 支持的 DNS 类型大全]

  3. 证书部署:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Nginx example:

    acme.sh --installcert -d example.com --server https://acme.certcloud.cn/acme/directory/XXX \
    --key-file /path/to/keyfile/in/nginx/key.pem \
    --fullchain-file /path/to/fullchain/nginx/cert.pem \
    --reloadcmd "service nginx force-reload"

    Apache example:

    acme.sh --installcert -d example.com --server https://acme.certcloud.cn/acme/directory/XXX \
    --cert-file /path/to/certfile/in/apache/cert.pem \
    --key-file /path/to/keyfile/in/apache/key.pem \
    --fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
    --reloadcmd "service apache2 force-reload"
  4. 获取并部署

    1
    2
    3
    4
    5
    acme.sh --issue -d example.com -d www.example.com --dns dns_dp --server https://acme.certcloud.cn/acme/directory/XXX --days 30 
    && acme.sh --installcert -d example.com -d www.example.com \
    --key-file /etc/nginx/conf.d/example.com.key \
    --fullchain-file /etc/nginx/conf.d/example.com.cer \
    --reloadcmd "service nginx force-reload"

    days 的周期为 30 天,acme.sh 会每 30 天去请求 server 去获取新的证书,并进行安装。

本文转载自: https://docs.certcloud.cn/docs/installation/auto/acme/acmesh/

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

使用ACME搭配freessl网站实现免费https证书的生成和更新

发表于 2022-09-02

背景

最近在使用netlify的静态网站托管服务, 如果需要自定义域名的话 需要提供https证书, 如下图:

image-20220902113147959

SSL证书介绍

是一种配置在服务器上的数字证书, 由可信的数字证书颁发机构(CA)颁发, 类似于我们的驾驶证, 它具有服务器身份验证和数据传输加密功能。

证书实际上就是几串字符密钥 以文本的形式存放在诸如.key .cer .csr 结尾的文件中:

image-20220902121037323

文件介绍:

  • .key文件: 证书私钥
  • .cer文件: certificate的缩写,这就是数字证书
  • .csr文件:certificate signing request的缩写 证书签名请求文件,含有公钥信息

这些文件需要存放在服务器中, 当浏览器通过域名对服务器进行访问时, 可获取服务器中的证书, 证书中含有公钥

那么浏览器和服务器 一个持有私钥一个持有公钥 进行加密会话 保证数据安全

自制SSL证书

既然所谓的证书就是RSA密钥, 那我们自然可以自己生成, 比如:

在线生成SSL证书

image-20220902142026451

但是这种自己颁发的证书是不被浏览器认可的, 就好比自己给自己手写一张驾驶证, 完全没有任何法律效力

因此我们只能向CA机构申请证书, 国际知名的CA机构有GeoTrust、Comodo、DigiCert、Sectigo、Thawte、GlobalSign、Symantec、AlphaSSL等

大部分都是收费的, 那么我们要用免费的话, 可以退而求其次,freessl这个平台是个不错的选择

freessl.cn

该网站免费提供由Let's Encrypt 与 TrustAsia两家CA机构颁发的SSL证书, 我们注册后即可免费申请, 但是证书有效期只有三个月, 到期后需要重新申请

为了解决自动续期的问题 我们需要用到一个工具, 那就是acme.sh

ACME.SH

acme.sh是一个数字证书管理工具, 利用它我们可以:

  • 辅助申请SSL证书文件到本地
  • 内置定时程序 到期自动申请证书
  • 安装证书到指定目录

GitHub地址

工具使用
  1. 工具安装

    1
    2
    3
    $ git clone https://github.com/acmesh-official/acme.sh.git
    $ cd ./acme.sh
    $ ./acme.sh --install -m my@example.com
  2. 证书申请

    1
    acme.sh --issue -d 域名 -w 证书存放目录

    acme.sh 默认会从zerossl获取证书, zerossl和freessl.cn一样, 也是一个证书中介网站 ,zerossl提供由Let's Encrypt 颁发的数字证书, 每个注册账户可以申请三个免费证书

    image-20220902150909721

    但是 由于免费的数量有限 所以我们不选择从zerossl获取

    如果只是临时测试用的话 可以用一用 直接在官网申请并下载证书zip包即可:

    image-20220902151803041

    image-20220902152401511

    考虑到长期使用, 因此我们选择freessl.cn

  3. 从freessl.cn获取证书

    freessl支持acme自动化

    在网站输入域名并且进行校验后会生成一个acme地址, 这个地址相当于账号凭证, 利用这个它我们可以借助acme.sh快速获取证书:

    image-20220902152759063

    具体指令如下:

    1
    acme.sh --issue -d 域名  --dns dns_dp --server 你的acme地址

    执行后自动将证书下载到本地:

    image-20220902113332949

    最后我们将证书密钥拷贝至托管服务器中, 这里以netlify为例:

    image-20220902154250607

    填写完后点击安装, 证书成功识别

    image-20220902113754771

    此时 我们即可通过自定义域名访问netlify中的静态网站了, 在浏览器中可以查看当前获取到的证书信息:

    image-20220902141040045

关于自动更新

通常我们会将acme.sh安装至服务器中, 然后实现证书的自动更新, 由于我这边使用的是netlify, 所以三个月到期后需要手动执行一下代码

更多关于acme.sh自动化的用法, 可以参见《acme.sh证书自动部署教程》

其他可以获取免费SSL证书的网站

  • OHTTPS: https://ohttps.com/

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

使用Hugo搭建个人博客

发表于 2022-09-01

简介

Hugo和Hexo类似, 也是一个搭建静态博客的工具, Hugo由Go语言编写,相比之下 Hugo编译速度要比Hexo快很多

不过各有各的优点, 目前我两个工具都在用, 主要还是以Hexo为主

接下来介绍Hugo的使用

工具安装

  1. Mac用户

    1
    brew install hugo
  2. Windows用户

    GitHub下载安装包

    下载完后 给hugo.exe配置环境变量, 方便任意目录使用该程序

安装完后 可以在命令窗口输入hugo version 来检测是否安装成功

工具基础使用

  1. 创建博客空工程

    1
    hugo new site 项目名称

    执行完后会在当前目录下生成工程文件夹:

    image-20220901170044828

    目录介绍:

    • content目录: 用于存放博客文章
    • themes目录: 用于存放博客主题
    • static目录: 该目录下文件不会被渲染 可用于存放静态资源 比如图片js css以及CNAME等等
    • archetypes目录:里面存放文章模版文件
    • data目录:用于存放数据
    • layouts目录:用于存放布局文件
    • config.toml文件: 配置文件
  2. 新建文章

    1
    hugo new post/first.md
  3. 下载博客主题

    博客必须要有一个主题 不然渲染出来的页面是空白, 我们以hyde主题为例:

    1
    2
    3
    # 创建 themes 目录
    $ cd themes
    $ git clone https://github.com/spf13/hyde.git
  4. 生成静态文件

    需要指定以那个主题进行静态页面渲染

    1
    hugo --theme=hyde

    此时目录下会自动生成一个public目录, 里面的文件即为生成的静态文件, 可以直接部署到网站

  5. 部署到GitHub

    添加静态仓库关联:

    1
    2
    3
    $ cd public
    $ git init
    $ git remote add origin https://github.com/xxx/xxx.github.io.git

    或者使用submodule的方式:

    1
    git submodule add -f -b master https://github.com/xxx/xxx.github.io.git public

    最后将静态文件推送到仓库:

    1
    2
    3
    4

    $ git add -A
    $ git commit -m "first commit"
    $ git push -u origin master

    部署这一块 相比hexo要繁琐一些, 我们可以使用脚本或者用GitHub actions自动部署

其他命令

  1. 生成独立页面

    1
    hugo new about.md
  2. 博客本地调试

    调试时同样需要指定一个主题

    1
    hugo server --theme=hyde

    服务启动后 浏览器里打开: http://localhost:1313, 即可看到当前博客页面, 修改文章动态更新

    如果需要让草稿一并加入调试 那么可以加入-D:

    1
    hugo server --theme=hyde -D
  3. 生成静态文件时草稿也进行渲染

    1
    hugo  --theme=hyde -D

    必须是大写的D

进阶使用

  1. 每次执行指令都要指定主题太过繁琐? 没事 我们在配置文件中添加以下代码 配置默认主题即可解决烦恼

    1
    2
    # 主题名称
    theme = "hyde"

    image-20220901174231361

  2. 自定义域名无法访问?

    1. 需要在配置文件中将baseURL参数替换成你的域名
    2. 同时在static目录下新建CNAME文件, 然后输入你的域名

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

虚幻蓝图快速上手

发表于 2022-08-29

前言

蓝图 实际上也是一门编程语言 一种图形化的语言

使用蓝图 可以使开发者们省去代码的编写 即便你不会代码 也能进行游戏开发

这一点 很大程度地吸引了许许多多的游戏爱好者的加入

……

如果你有编程基础的话 那么蓝图上手会非常的快, 接下来 我们来快速入门

语言类比

我们知道 正常的编程的语言 基本上都有变量 函数的概念, 蓝图既然是一门语言, 那么它自然也有 只不过表现形式不太一样罢了

函数

  1. 蓝图中函数的表现形式

    在蓝图中 每一个蓝图节点我们可以视作一个函数

    image-20220829152437687

  2. 函数的定义

    虚幻引擎给我们封装好了许多函数 比如打印字符串的函数 给物体添加材质的函数等等

    如果我们想要自定义一个函数呢, 那么直接在左侧面板中添加一个新函数, 比如 我定义一个名为Test的函数 内部逻辑是比较传入的值是否等于3

    image-20220829180025489

    函数创建好后可以在蓝图事件表中通过鼠标右键进行名称搜索使用:

    image-20220829180313058

    image-20220829180354133

  3. 函数的调用

    节点连线可以表示函数调用和传参, 这种箭头形状的输入口 表示的就是函数调用, 左边调用右边

    image-20220829152624719

  4. 函数传参

    蓝图节点左侧下方的一系列入口 可以理解为函数参数的传递入口:

    image-20220829170225676

事件监听

现代程序的编写几乎离不开监听回调, 在设计模式的领域中也叫做观察者者模式, 我们可以在蓝图编辑面板中左侧查看当前创建事件:

image-20220919152646963

事件主要用于蓝图类之间的信息交互, 当关卡中的某一个子物体需要和所处关卡进行通信时, 我们可以在关卡蓝图中自定义一个事件, 然后子物体蓝图中调用触发:

image-20220919153104557

image-20220919153620945

事件触发命令格式为: ce 事件名

关卡蓝图是当前关卡内所有物体的父级 它可以获取到物体的实例 很容易和子物体进行数据通信, 但是物体并不持有关卡的实例, 所以信息交互需要依靠事件

变量

  1. 定义全局变量

    添加变量后 我们可以在属性细节面板中 设置变量的数据类型

    image-20220829153316870

  2. 定义局部变量

    在左侧面板中 点击鼠标右键调出菜单 可以增加局部变量的设置入口, 其操作和使用与全局变量一样 这里不再赘述

    image-20220829155333576

  3. 初始化变量的值

    通常情况下 我们在定义变量的同时 会对该变量进行值的初始化

    image-20220829153622095

  4. 获取变量值

    程序运行时 我们需要动态读取变量的值, 此时我们按住Ctrl键 然后鼠标左键将变量拖拽至事件图标中

    getvar

    此时会生成一个获取变量值的函数(蓝图节点)

  5. 设置变量的值

    同样的 我们要生成一个设置变量值的函数时, 按住Alt键 然后鼠标左键将变量拖拽至事件图标中即可

    setvar

注释

任何一门编程语言都有注释 方便我们对于程序的维护 蓝图自然也有

选中你需要进行注释的蓝图节点 然后按键盘C 则会出现一个方块将选中的节点包裹 此时可以输入注释内容

image-20220829153005361

逻辑执行

比如我们要执行一个在屏幕上打印字符串的逻辑, 那么我们可以在游戏启动的时候 调用打印字符串的函数(节点)

事件开始运行 这个函数 表示的就是游戏启动的 相当于Java中的main函数, 只执行一次

image-20220829160253326

编写好逻辑后 运行游戏 就能看到屏幕上打印的内容了

printString

对象

蓝图是一门面向对象的编程语言 在游戏中每一个物体都是一个对象

  1. 创建对象

    在世界大纲中显示的所有物体都是对象

    image-20220829161621529

    而创建对象方法很简单就是直接将素材拖拽至场景中

    2022-08-29 16-32-03.2022-08-29 16_34_17

    有些素材拖入场景后世界大纲中找不到 比如材质 说明该素材在蓝图事件表中不能直接通过右键的方式来创建对象引用

    材质比较特殊 对硬件资源消耗比较大 我们通常会在材质基础上创建材质实例 其好处是一方面减少资源消耗 另一方面可以暴露参数在游戏过程中动态修改属性

    对于材质对象的创建 我们可以选中对应材质 然后鼠标右键创建材质实例:

    image-20220829170844561

    点击创建后 素材面板会多出一个材质实例, 这个实例是材质的子类:

    image-20220829171302287

    我们可以在蓝图中创建数组变量来存放该实例:

    image-20220829173504954

  2. 获取对象实例

    我们只需在场景或者世界大纲中选中需要引用的物体对象, 然后在蓝图事件表中 右键创建对象引用节点即可

    image-20220829164655130

    动图操作如下:

    2022-08-29 16-48-00.2022-08-29 16_49_34

  3. 修改对象属性

    比如修改某个物体的位置属性, 我们可以在游戏启动时调用位置修改函数

    image-20220829165958763

关卡蓝图和蓝图类

  • 关卡蓝图: 重点在关卡 而不是蓝图 是指以蓝图语言编辑的关卡
  • 蓝图类: 重点在类 是指以蓝图语言定义和编辑的类

在游戏引擎中 关卡本质就是一个集合了众多Actor的类

虚幻引擎类继承关系

1
2
3
4
5
6
7
        |--Actor--Pawn--Character
|
Object--|--PlayerController
|
|--Info--GameModeBase
|
|--ActorComponent--SceneComponent

开发文档参考

官方文档

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

虚幻引擎实用快捷键汇总

发表于 2022-08-28

场景相关

  1. 快速定位聚焦到某个物体

    1
    键盘F
  2. 使物体下落吸附至地面

    1
    键盘end
  3. 快速旋转地图

    1
    Alt+鼠标左键
  4. 快速缩放地图

    1
    Alt+鼠标右键
  1. 临时放大地图

    1
    C+鼠标任意键长按
  2. 临时缩小地图

    1
    Z+鼠标任意键长按
  3. 进入预览模式

    1
    Alt+P

蓝图相关

  1. 在蓝图面板获取变量值

    1
    Ctrl+鼠标左键拖动
  2. 在蓝图面板设置变量值

    1
    Alt+鼠标左键拖动
  3. 切断蓝图节点之间的连线

    1
    光标移至线上 然后 Alt+鼠标左键
  4. 给选中的蓝图节点添加注释

    1
    键盘C
  5. 克隆选中的蓝图节点

    1
     

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

关于虚幻引擎位置迁移之路径修改

发表于 2022-08-22

起因

最近换了硬盘 打算将原来的虚幻引擎迁移到另一块硬盘 但是当我将引擎文件拷贝过去后 虚幻启动程序并未识别 然而设置面板中又没有关于这一块路径的修改

难道我得重新下载一遍? 这我肯定是不能接受的呀

于是乎我百度了一番经过尝试之后发现一个方法可行

解决方案一

重新下载引擎 然后选择新的引擎下载路径 该路径是你新硬盘位置

image-20220822145537993

下载开始后硬盘中会自动生成相应的引擎目录 此时暂停下载 紧接着将旧引擎迁移至该目录下 最后重启Epic Games Launcher即可

解决方案二

进入虚幻support目录 修改install.in文件, Mac系统路径如下:

1
/Users/你的用户名/Library/Application Support/Epic/UnrealEngine/install.in

用文本文件打开 然后修改对应的路径即可

image-20220822150921510

同样的 最后重启Epic Games Launcher即可

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Youtube的山寨版LibreTube国内直连

发表于 2022-08-03

前言

发现一款软件 - LibreTube,看这名字就知道八成是 Youtube 的山寨版。

请忽略google的渣翻译

打开 APP 后长这样,直接访问无压力:

界面设计的看起来还是不错的,视频刚打开需要多缓冲几秒。

左上角的设置里还可以设置不同国家和视频源,默认分辨率等。速度慢可以在【选择实例】里切换其他的\实例*。*

搜索功能也同样好用,经过小编测试,动漫新番,包括最近比较火的电视剧都能搜到,关键还都是正版。

视频播放器还自带字幕,变速功能。这么多年过去了,神仙姐姐依旧那么好看

另外还可以把喜欢的视频下载下来,订阅喜欢的频道,非常方便。

APP 是免费开源的,安装包只有 13.7MB,不得不说,开源牛逼,开源万岁。

由于直接从 Github 下载太慢,小编已经将 apk 安装包上传到了网盘。

最后附上下载地址:

  • GitHub: 点击下载

  • 蓝奏网盘: 点击下载

本文转载自:微信公众号

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

一款好用的搜索引擎推荐

发表于 2022-08-02

前言

周围不少小伙伴反应,最近搜索引擎的准确率越来越低了,有时候搜索官网都搜不到。

之前介绍过号称 “国内版 Google” 的F搜,前不久还由于各种原因无法访问了。

今天一看发现,又回归了,域名也由 fsou.cc换成了 fsoufsou.com。界面也和Google 搜索越来越像了。

不过今天的重点不在这里,最近发现个超级牛的搜索引擎。

网站走的简洁风格,但功能可不简单。汇聚了来自 Google,Bing 等70多个不同搜索引擎的结果。

除了常规的网页和图片搜索,还支持视频,新闻,音乐,学术,文件,社交媒体等。

还可以在首选项里设置里对不同标签开启不同的搜索引擎。比如常规类中只开启了Google,还可以开启Bing,duckduckgo 等搜索结果。

开启后你会发现搜索结果准确率又进一步提高。这个搜索引擎目前是开源的,人人都可以搭建。

不过,已经有很多大神已经搭建好了,镜像站点非常多,就没必要自己动手了。

只需要在 https://searx.space 选择一个最快的站点就能访问了。

通过这个搜索工具 可以搜到平常搜不到的东西 大家懂得

本文转载自:微信公众号

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

一款跨平台的m3u8视频下载工具

发表于 2022-08-02

介绍

M3U8-Downloader是基于Electron框架开发的一款可以下载、播放HLS视频流的APP。

功能 支持
HLS标准源 ✓
标准 AES-128-CBC加密 ✓
标准 AES-196-CBC加密 ✓
标准 AES-256-CBC加密 ✓
非标准 AES-*-CBC加密 ㄨ

开放源码 M3U8-Downloader

GitHub stars

下载最新版 2.0.7 (2022-01-26)

百度网盘下载
1
链接:https://pan.baidu.com/s/14zaMkxgfTC0HSge-Ze6EpQ 提取码:m3u8
阿里云盘下载
1
链接:https://www.aliyundrive.com/s/1QjQvn29W6J

使用展示

M3U8-Downloader 下载展示
M3U8-Downloader 合并展示
M3U8-Downloader 修复合并展示

HLS源怎么抓取呢?

在chrome浏览器打开视频网页,按下F12,页签点击到Network页面,在Filter框里输入”m3u8”,然后按F5刷新页面,如果网页里的视频使用的是HLS源,就可以在这里捕获到视频流地址,然后选中右键 Copy -> Copy Link Address.

M3U8-Downloader 可以使用您提供m3u8源地址下载并无损转码Mp4文件。

关于 M3U8-Downloader

点击进入官网

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

下载视频m3u8格式视频的若干种方法

发表于 2022-08-01

第一种方法 使用ffmpeg工具

先安装ffmpeg:

brew install ffmpeg

img

ffmpeg安装完成

ffmpeg使用:通过检查元素,元素定位,可以看到某视频地址的资源地址如下blob:URL的这种形式

img

然后通过查看Network,找到blob:URL地址背后的m3u8地址

img

用ffmpeg下载视频,并将m3u8格式转为mp4格式,指令如下

ffmpeg -i https://youku.com-youku.net/20180620/13336_33db73a9/index.m3u8 fileName.mp4

或

ffmpeg -i https://youku.com-youku.net/20180620/13336_33db73a9/index.m3u8 -c copy fileName.mp4

img

如上下载中

由于视频很大,下载需要很长长长时间(1个G的视频可能需下载几小时…)。

可以通过如下指令进行下载提速(下载速度大约能提升到几到十几分钟,很棒了哦,起码比百度云快):

ffmpeg -i https://youku.com-youku.net/20180620/13336_33db73a9/index.m3u8 -c copy -bsf:a aac_adtstoasc fileName.mp4

如果你想用终端工具拉起视频播放,直接通过如下指令就能 播放某链接的视频

ffplay -i https://youku.com-youku.net/20180620/13336_33db73a9/index.m3u8

img

下载完成,播放中

第二种方法 使用Chrome插件Tampermonkey(油猴)

关于Tampermonkey油猴的安装和基本使用,见我之前的一篇文章:

晒一下我常用的几款chrome 插件,你值得拥有

这里介绍油猴中1个好用的脚本:media-source-extract

在油猴脚本列表中暂时无法提供下载,目前需要手动创建安装,具体的视频下载和工具使用,见链接:

点击进入下载

media-source-extract是一款提取视频画面和音频的工具,最终下载得到的是音频文件和视频画面文件。

因此可以通过合并音视频来完成最终的视频。

具体音视频合成方法网上有很多,我这边提供一套ffmpeg的合并方法,具体分2步走:

1、先把音频「audio_mp4」(或多个「audio_mp4」) 进行合并转码,转为.aac格式:命令行执行如下:

1
ffmpeg -i "***-audio_mp4;codecs=***.mp4" -acodec copy "audio.aac"

(记得命令行先切换到音频所在的文件路径下)

2、再将原始视频「video_mp4」(或多个「video_mp4」),和上一步得到的 aac 「audio.aac」组装到一起,命令行执行如下:

1
ffmpeg -i "***-video_mp4;codecs=***.mp4" -i "audio.aac" -c copy -shortest "result.mp4"

(记得命令行先切换到音频所在的文件路径下)

最终result.mp4就是你要的合并了音频和画面的视频了!

media-source-extract这种提取音视频合并的方法,太麻烦了,有点像录屏的感觉。

下载操作的复杂度,以及过程可能会丢失的视频片段,我表示很淦。

但是作为一个下载方式,有价值,可作为备胎。

再介绍1个比较好油猴插件:m3u8-downloader

在油猴脚本地址栏 用户脚本 中去搜索下载安装,如下图:

img

img

使用:譬如下载一部烂片 动作片《蛇蝎情人2003正片》免费在线播放-星空影院,用google浏览器输入该视频网址,m3u8-downloader 脚本会自动识别blob:URL地址并拿到m3u8文件,如下:

img

点击“跳转下载”,会跳转到下载页面

img

选择“原格式下载”或“转码为MP4下载”

img

开始下载,同时可以看到下载进度,如下:

img

下载完成,本地播放,如图:

img

第三种方法 使用NeatDownloadManager Extension

这是一款我常用的插件,很好用。

可以去下载1个PC端软件 和 google插件

PC端NeatDownloadManager下载地址:Neat Download Manager for Mac and Windows (Free Internet Download Manager Mac & Windows )

安装后,界面如下

img

在红色标记1的Setting中,可以设置对应代理,譬如常见的某d下载提速,可以像这样设置:

img

红色标记2的Browsers中,点击“Add Chrome Extension”就可以给google浏览器添加该插件啦:

img

当然也可以直接在google插件搜索 NeatDownloadManager Extension(需要f墙),进行安装:

img

安装已经完成啦:

img

NeatDownloadManager Extension插件的使用:

我想下载温老的视频:温铁军:四大文明古国为何只有中国没有灭亡?罗马的民主只对其10%的人口?【温铁军践闻录5-35】_哔哩哔哩_bilibili

在google浏览器里,打开该地址,就可以看到该插件拿到的视频资源:

img

点击那个size最大的视频资源,就会自动下载了:

img

下载完成

img

搞定!

第四种方法 使用视频下载器 - CoCoCut

在google网上应用商店(需要f墙),搜索“视频下载器 - CoCoCut”

img

安装该插件:

img

视频下载器 - CoCoCut使用:

譬如我想下载一个电影,我在goolge 浏览器上随便找了一个电影网站:《战狼2》高清完整版_最新电影_免费在线观看平台_猪蹄影院 ,然后该插件就会自动检测到该视频信息,点开该插件,就可以看到并执行下载了

img

下载中

img

下载完成。

img


最后,推荐几款我常用的解析.m3u8的在线网站:

FLVCD - 硕鼠官网|FLV下载|视频下载

Gihosoft TubeGet

真心希望,更多的技术为更多人使用。

本文转载自:知乎

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

1…131415…50

乱码三千

android程序员一枚,擅长java,kotlin,python,金融投资,欢迎交流~

493 日志
143 标签
RSS
© 2025 乱码三千
本站总访问量次
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4
0%