CentOS 安装 annie/lux,以及 annie/lux 的使用
annie 介绍
如果第一次听到 annie 想必都会觉得陌生,annie 被大家称为视频下载神器,annie 作者介绍说可以下载抖音、哔哩哔哩、优酷、爱奇艺、芒果TV、YouTube、Tumblr、Vimeo 等平台的视频。
githup:https://github.com/pingf/annie
支持的范围如下:

文章介绍
之所以有这篇文章是因为,在网络上看到的都是 windows 怎么安装,对于 CentOS 系统如何安装的文章却寥寥无几。安装 annie 之前需要安装其他的依赖,作者花了一些时间才把 annie 在 CentOS 上安装起来,这里作为一个安装记录。同时也会介绍 annie 的常用命令。
下载和安装
在安装 annie 之前,需要先依次安装 yasm、FFmpeg,而 yasm、FFmpeg、annie 都不支持 yum 安装的,三个都需要自己手动编译安装。
FFmpeg 主要是讲视频和音频合并,如果没有安装 FFmpeg 也能下载视频,但下载下来的分为视频和音频两个文件。
安装 yasm:
在 http://www.tortall.net/projects/yasm/releases 可以看到 yasm 全部版本号,距今为止最新的版本为 1.3.0。
cd ~
# 下载 yasm,这里的下载地址是作者的网盘地址(地址长期有效)
wget http://file.shijialeya.top/package/yasm-1.3.0.tar.gz
# 解压文件
tar -zxvf yasm-1.3.0.tar.gz
# 进入解压的文件
cd yasm-1.3.0
# 执行一下配置
./configure
# 编译并安装
make && make install
# 检查是否安装完成(输出对应的版本号即安装完成)
yasm --version
安装 FFmpeg:
在 https://ffmpeg.org//releases 可以看到 FFmpeg 全部版本号,距今为止最新的版本为 7.0.1。
cd ~
# 下载 FFmpeg,这里的下载地址是作者的网盘地址(地址长期有效)
wget http://file.shijialeya.top/package/ffmpeg-7.0.1.tar.gz
# 解压文件
tar -zxvf ffmpeg-7.0.1.tar.gz
# 进入解压的文件
cd ffmpeg-7.0.1
# 执行一下配置
./configure
# 编译并安装(这里需要很长的时间,耐心等待)
make && make install
# 检查是否安装完成(输出对应的版本号即安装完成)
ffmpeg --version
安装 annie:
在 https://github.com/iawia002/lux/releases 可以看到 annie 全部版本号,距今为止最新的版本为 0.24.1。
cd ~
# 下载 annie,这里的下载地址是作者的网盘地址(地址长期有效)
wget http://file.shijialeya.top/package/lux_0.24.1_Linux_x86_64.tar.gz
# 解压文件
tar -zxvf lux_0.24.1_Linux_x86_64.tar.gz
解压之后就可以得到一个 lux 可以执行的文件,可以通过以下命令进行视频文件下载:
./lux https://www.bilibili.com/video/BV1j4411W7F7
可以看到视频已经下载成功了。

我们可以将 lux 加入到环境当中,就可以在任意目录下都使用 lux 命令下载文件了。
# 将 lux 移动到 /usr/local/annie/ 目录下
mkdir /usr/local/annie
mv lux /usr/local/annie/
# 加入环境
vim /etc/profile
在文件尾部增加
export PATH=/usr/local/annie:$PATH

保存文件,之后执行
source /etc/profile
查看 lux 的版本号,检查环境是否配置正确

下载视频案例
-
直接下载视频,默认是最高清晰度(这里最高的清晰度是指:未登录能选择的最高的清晰度)
lux https://www.bilibili.com/video/BV1rk4y1R7id -
查看视频信息但不下载
lux -i https://www.bilibili.com/video/BV1rk4y1R7id
-
下载指定清晰度的视频
在上面可以看到清晰度对应的文件,如:
lux -f 16-7 对应的是 流畅 360P avc1.64001E;
lux -f 32-7 对应的是 清晰 480P avc1.64001F
如果需要下载 清晰 480P avc1.64001F 的文件,那么加多 -f 选项,-f 选项的值要和 lux -f xxx 中的 xxx 保持一致。
lux -f 32-7 https://www.bilibili.com/video/BV1rk4y1R7id -
下载多个视频
可以使用空格隔开
lux https://www.bilibili.com/video/BV19h411T7rd https://www.bilibili.com/video/BV1wx4y1F73v也可以将地址先保存到文本文件,下载文件中的所有链接
download_list.txt
https://www.bilibili.com/video/BV19h411T7rd https://www.bilibili.com/video/BV1wx4y1F73v下载默认清晰度的视频
lux -F download_list.txt查看文件地址中的清晰度
lux -F download_list.txt -i下载指定清晰度的视频
lux -F download_list.txt -f 32-12 -
下载的视频到指定的目录下
lux -o ~/video https://www.bilibili.com/video/BV1rk4y1R7id -
下载合集视频(部分下载平台支持)
查看合集中的视频
# 该操作执行很慢 lux -p -i https://www.bilibili.com/video/BV13Z421g7PT下载合集的全部文件
# 该操作执行很慢 lux -p https://www.bilibili.com/video/BV13Z421g7PT下载合集的指定集数
# 下载 2、3、4 集 lux -p -start 2 -end 4 https://www.bilibili.com/video/BV13Z421g7PT -
添加登录 Token
-c 后面添加的就是平台的 Token 的 key 和 value。
其中 bilibili 取的是 SESSDATA;优酷使用的是 P_pck_rm;所以 -c 后面的值需要按照不同平台配置不同的值。
lux -c SESSDATA=xxx -i https://www.bilibili.com/video/BV1rk4y1R7id登录之后可以看到更加清晰的视频

也可以将 Token 信息保存到文件中
bilibili_token.txt
SESSDATA=xxx这里是登录Tokenlux -c bilibili_token.txt -i https://www.bilibili.com/video/BV1rk4y1R7id
相关文章:
CentOS 安装 annie/lux,以及 annie/lux 的使用
annie 介绍 如果第一次听到 annie 想必都会觉得陌生,annie 被大家称为视频下载神器,annie 作者介绍说可以下载抖音、哔哩哔哩、优酷、爱奇艺、芒果TV、YouTube、Tumblr、Vimeo 等平台的视频。 githup:https://github.com/pingf/annie 支持…...
拥抱UniHttp,规范Http接口对接之旅
前言 如果你项目里还在用传统的编程式Http客户端比如HttpClient、Okhttp去直接对接第三方Http接口, 那么你项目一定充斥着大量的对接逻辑和代码, 并且针对不同的对接渠道方需要每次封装一次调用的简化, 一旦封装不好系统将会变得难以维护&am…...
Python 给存入 Redis 的键值对设置过期时间
Redis 是一种内存中的数据存储系统,与许多传统数据库相比,它具有一些优势,其中之一就是可以设置数据的过期时间。通过 Redis 的过期时间设置,可以为存储在 Redis 中的数据设置一个特定的生存时间。一旦数据到达过期时间࿰…...
在linux中安装docker
文章目录 1、安装依赖2、安装docker的下载源3、安装docker4、设置Docker服务开机自启 1、安装依赖 sudo yum install -y yum-utils2、安装docker的下载源 sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repohttps://download.do…...
【JVM-04】线上CPU100%
【JVM-04】线上CPU100% 1. 如何排查2. 再举一个例子 1. 如何排查 ⼀般CPU100%疯狂GC,都是死循环的锅,那怎么排查呢?先进服务器,⽤top -c 命令找出当前进程的运⾏列表按⼀下 P 可以按照CPU使⽤率进⾏排序显示Java进程 PID 为 2609…...
try catch 解决大问题
项目开发中遇到一个棘手的bug,react前端项目独自运行时一切正常,但是把项目集成到使用wujie的大平台微前端项目中之后,突然有个地方无故报错,导致程序运行停止,后续的方法不再执行。报错如下: DOMExceptio…...
手动解析Collection
即将被解析的json {"collection": {"templates": [{"data": [{"name": "plantCode","value": "MSHG_KFXHS02"}, {"name": "details","value": [{"plantMedicament…...
list模拟实现【C++】
文章目录 全部的实现代码放在了文章末尾准备工作包含头文件定义命名空间类的成员变量为什么节点类是用struct而不是class呢?为什么要写get_head_node? 迭代器迭代器在list类里的实例化和重命名普通迭代器operator->()的作用是什么? const迭代器反向迭…...
nginx正向代理、反向代理、负载均衡
nginx.conf nginx首要处理静态页面 反向代理 动态请求 全局模块 work processes 1; 设置成服务器内核数的两倍(一般不不超过8个超过8个反而会降低性能一般4个 1-2个也可以) netstat -antp | grep 80 查端口号 *1、events块:* 配置影响ngi…...
matlab 有倾斜的椭圆函数图像绘制
matlab 有倾斜的椭圆函数图像绘制 有倾斜的椭圆函数图像绘制xy交叉项引入斜线负向斜线成分正向斜线成分 x^2 y^2 xy 1 (负向)绘制结果 x^2 y^2 - xy 1 (正向)绘制结果 有倾斜的椭圆函数图像绘制 为了确定椭圆的长轴和短轴的…...
PTK是如何加密WLAN单播数据帧的?
1. References WLAN 4-Way Handshake如何生成PTK?-CSDN博客 2. 概述 在Wi-Fi网络中,单播、组播和广播帧的加密算法是由AP决定的。其中单播帧的加密使用PTK密钥,其PTK的密钥结构如下图所示: PTK的组成如上图所示,由K…...
Django之登录权限系统
本文参考链接django之auth模块(用户认证) - chchcharlie、 - 博客园 (cnblogs.com) 执行完迁移命令,会自动生成admin表,迁移命令如下: python manage.py makemigrations python manage.py migrate 相关模块 from django.contrib …...
rust way step 1
install rust CARGO_HOME D:\rust\.cargo RUSTUP_HOME D:\rust\.rustup [dependencies] ferris-says "0.2" vscode 安装rust 插件 use ferris_says::say; // from the previous step use std::io::{stdout, BufWriter};fn main() {let stdout stdout();let m…...
视觉语言模型导论:这篇论文能成为你进军VLM的第一步
近些年,语言建模领域进展非凡。Llama 或 ChatGPT 等许多大型语言模型(LLM)有能力解决多种不同的任务,它们也正在成为越来越常用的工具。 这些模型之前基本都局限于文本输入,但现在也正在具备处理视觉输入的能力。如果…...
Postman工具基本使用
一、安装及基本使用 安装及基本使用参见外网文档:全网最全的 postman 工具使用教程_postman使用-CSDN博客 建议版本:11以下,比如10.x.x版本。11版本以后貌似是必须登录使用 二、禁止更新 彻底禁止postman更新 - 简书 host增加࿱…...
uni-app三部曲之三: 路由拦截
1.引言 路由拦截,个人理解就是在页面跳转的时候,增加一级拦截器,实现一些自定义的功能,其中最重要的就是判断跳转的页面是否需要登录后查看,如果需要登录后查看且此时系统并未登录,就需要跳转到登录页&…...
专注于国产FPGA芯片研发的异格技术Pre-A+轮融资,博将控股再次投资
近日,苏州异格技术有限公司(以下简称“异格技术”)宣布成功完成数亿元的Pre-A轮融资,由博将控股在参与Pre-A轮投资后,持续投资。这标志着继2022年获得经纬中国、红点中国、红杉中国等机构数亿元天使轮融资后࿰…...
【python】QWidget父子关系,控件显示优先级原理剖析与应用实战演练
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
CTF php RCE(三)
0x07 日志文件包含 判断类型 使用kali curl -I urlF12 打开F12开发者工具,选中之后F5刷新查看server类型即可 配置文件 直接包含或者访问如果有回显就是, NGINX:NGINX 的配置文件通常位于 /etc/nginx/ 目录下,具体的网站配…...
Android 注解的语法原理和使用方法
Android 注解的语法原理和使用方法 关于我 在 Android 开发中,注解(Annotation)是一种强大的工具,用于在代码中添加元数据。注解可以简化代码、提高可读性、减少样板代码,并且在一定程度上增强编译时的类型检查。本文…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
