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)是一种强大的工具,用于在代码中添加元数据。注解可以简化代码、提高可读性、减少样板代码,并且在一定程度上增强编译时的类型检查。本文…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
Python环境安装与虚拟环境配置详解
本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...
算法刷题-回溯
今天给大家分享的还是一道关于dfs回溯的问题,对于这类问题大家还是要多刷和总结,总体难度还是偏大。 对于回溯问题有几个关键点: 1.首先对于这类回溯可以节点可以随机选择的问题,要做mian函数中循环调用dfs(i&#x…...
k8s从入门到放弃之Pod的容器探针检测
k8s从入门到放弃之Pod的容器探针检测 在Kubernetes(简称K8s)中,容器探测是指kubelet对容器执行定期诊断的过程,以确保容器中的应用程序处于预期的状态。这些探测是保障应用健康和高可用性的重要机制。Kubernetes提供了两种种类型…...
