轻量级音乐元数据编辑器Metadata Remote

在这里插入图片描述

简介

什么是 Metadata Remote (mdrm) ?

Metadata Remote 是一个基于 Web 的音频元数据编辑工具,旨在简化在无头服务器(即没有图形用户界面的服务器)上编辑音频文件的元数据。用户只需使用 Docker 和浏览器,无需复杂的音乐库生态系统、命令行操作或文件传输。

主要特点

  1. 无头服务器支持:适用于在无桌面环境的服务器上操作,方便用户直接编辑元数据。
  2. 快速设置:使用 Docker 容器,安装过程简单,用户可以在不到一分钟内完成设置。
  3. 智能元数据建议:通过分析文件名和目录结构,提供智能的元数据建议,支持复杂情况,如古典音乐和合辑。
  4. 完全可逆的编辑历史:提供完整的撤销/重做功能,最多可追踪 1000 次编辑,用户可以轻松恢复错误。
  5. 强大的批量操作:支持对整个文件夹的元数据或专辑封面进行批量应用,极大提高效率。
  6. 现代化界面:提供干净的 Web UI,支持实时过滤和文件流播放,用户体验良好。
  7. 多架构支持:提供适用于 x86_64ARM64ARMv7 的多架构 Docker 镜像。

应用场景

  1. 无头媒体服务器:可用于 JellyfinPlex 等媒体服务器的元数据整理,方便在导入库之前进行准备。
  2. NAS 系统:在 TrueNASUnraidSynologyNAS 系统上编辑音频文件的元数据。
  3. 云服务器: 在没有 GUI 访问的 VPS 上处理音乐库。
  4. Raspberry Pi 设置:轻量级设计,适合在资源有限的设备上运行。
  5. 大规模操作:高效处理成千上万的文件,适用于档案数字化和混合格式库的维护。

通过这些特点和应用,Metadata Remote 为用户提供了一种高效、灵活的音频文件元数据管理解决方案。

从核心功能上来说,Metadata Remote 和老苏之前介绍的 Music Tag Web 一样,都是通过浏览器界面编辑音频文件元数据

文章传送门: 网页版音乐元数据编辑器Music Tag Web

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应为 v1.1.3

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 mdrm 和 子目录
mkdir -p /volume1/docker/mdrm/music# 进入 mdrm 目录
cd /volume1/docker/mdrm# 运行容器
docker run -d \--name metadata-remote \--restart unless-stopped \-p 8338:8338 \-v $(pwd)/music:/music \-e PUID=1000 \-e PGID=1000 \ghcr.io/wow-signal-dev/metadata-remote:latest

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3.8'services:metadata-remote:image: ghcr.io/wow-signal-dev/metadata-remote:latestcontainer_name: metadata-remoterestart: unless-stoppedports:- "8338:8338"volumes:- ./music:/music- /usbshare1/000、Music:/music/Library1environment:- PUID=1000- PGID=1000

然后执行下面的命令

# 新建文件夹 mdrm 和 子目录
mkdir -p /volume1/docker/mdrm/music# 进入 mdrm 目录
cd /volume1/docker/mdrm# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8338 就能看到主界面

选中一首曲子,可以编辑元数据

包括专辑、封面、歌手等,设置完成后,可以保存

多目录挂载

若要挂载多个音乐目录,你需要在 volumes 部分添加多个条目

假设你有两个音乐目录,分别位于 /home/user/music1/home/user/music2。因为默认环境变量 MUSIC_DIR=/music,所以我们可以将他们挂载到 /music 下面,例如: /music/Library1/music/Library2

下面的示例是用同一个目录的音乐文件,挂载了 2

version: '3.8'services:metadata-remote:image: ghcr.io/wow-signal-dev/metadata-remote:latestcontainer_name: metadata-remoterestart: unless-stoppedports:- "8338:8338"volumes:- /volumeUSB1/usbshare/Music:/music/Library1- /volumeUSB1/usbshare/Music:/music/Library2environment:- PUID=1000- PGID=1000

实际效果

参考文档

wow-signal-dev/metadata-remote: A modern web-based metadata editor for audio files, designed for managing large music collections with clean bulk editing capabilities.
地址:https://github.com/wow-signal-dev/metadata-remote

Lightweight web-based music metadata editor for headless servers : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1l945ku/lightweight_webbased_music_metadata_editor_for/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/91005.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/91005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免费使用|共享服务器上线RTX3080(20GB显存)

共享服务器也上架GPU啦 生物信息学中有很多用到GPU的场景,例如我们分享过的:利用GPU加速TensorFlow、部署本地DeepSeek,空间转录组学习手册合辑加速。因此多种GPU供大家选择:RTX5090、4080S、5070显卡上机。为了让此前的CPU服务器…

搭建DM数据守护集群

1环境与规划准备3个kylin 10操作系统的虚拟机,规划IP、端口、安装目录等。说明搭建REALTIME归档模式、事务一致性的数据守护名称项初始主库机器dm1初始备库机器dm2监视器机器dmmon外部业务IP192.168.23.129192.168.23.130192.168.23.131内部心跳IP192.168.23.129192…

AUTOSAR进阶图解==>AUTOSAR_SRS_OCUDriver

AUTOSAR OCU驱动程序详解 AUTOSAR标准输出比较单元驱动程序架构与实现分析目录 1. 概述 1.1 OCU驱动程序简介1.2 功能概述 2. OCU驱动程序架构 2.1 架构图2.2 层次结构 3. OCU驱动程序组件设计 3.1 组件图3.2 接口定义 4. OCU驱动程序状态管理 4.1 状态图4.2 状态转换 5. OCU驱…

InfluxDB 与 HTTP 协议交互进阶(一)

引言 在当今数字化时代,数据处理的高效性和准确性成为了众多领域关注的焦点。InfluxDB 作为一款开源的时序数据库,凭借其高性能、易扩展等特性,在时间序列数据处理中占据了重要地位。而 HTTP 协议作为互联网应用层的核心协议之一&#xff0c…

NAS远程访问新解法:OMV与cpolar的技术协同价值

文章目录前言1. OMV安装Cpolar2. 配置FTP公网地址3. OMV FTP 配置4. OMV FTP远程连接前言 当家庭存储需求突破本地边界时,传统NAS方案往往陷入"连接困境":复杂的端口转发配置、高昂的公网IP成本、以及始终存在的安全顾虑…开源解决方案OMV虽然…

vue 渲染 | 不同类型的元素渲染的方式(vue组件/htmlelement/纯 html)

省流总结&#xff1a;&#xff08;具体实现见下方&#xff09; vue 组件 ——》<component :is组件名> htmlelement 元素 ——》 ref 、★ v-for ref 或是 ★ vue 的 nextTick 纯 html 结构——》v-html 另外&#xff0c;当数据异步加载时&#xff0c;vue3中如何渲…

Charles中文版深度解析,轻松调试API与优化网络请求

在现代软件开发过程中&#xff0c;调试API、捕获HTTP/HTTPS流量以及优化网络性能是开发者不可避免的挑战。特别是在处理复杂的网络请求和验证API接口的数据传输准确性时&#xff0c;开发者需要一款强大且易于使用的工具。Charles抓包工具凭借其功能强大、界面简洁、易于操作的特…

【CF】Codeforces Round 1039 (Div. 2) E1 (二分答案求中位数)

E1. Submedians (Easy Version)题目&#xff1a;思路&#xff1a;经典不过加了点东西对于求中位数&#xff0c;我们必然要想到二分答案&#xff0c;具体的&#xff0c;对于所有大于等于 x 的数我们令其奉献为 1&#xff0c;小于的为 -1&#xff0c;如果存在某段区间的奉献和大于…

ESP32-S3学习笔记<8>:LEDC的应用

ESP32-S3学习笔记&#xff1c;8&#xff1e;&#xff1a;LEDC的应用1. 头文件包含2. LEDC的配置2.1 配置定时器2.1.1 speed_mode/设置速度模式2.1.2 duty_resolution/设置占空比分辨率2.1.3 timer_num/选择定时器2.1.4 freq_hz/设定PWM频率2.1.5 clk_cfg/选择LEDC的外设时钟源2…

网络安全第14集

前言&#xff1a;小迪安全14集&#xff0c;这集重点内容&#xff1a;0、什么是js渗透测试&#xff1f;在javascript中也存在变量和函数&#xff0c;存在可控变量和函数就有可能存在在漏洞&#xff0c;js开发的web应用和php、java开发的区别是&#xff0c;js能看得到的源代码&am…

代码随想录算法训练营第三十三天

LeetCode.62 不同路径 题目链接 不同路径 题解 class Solution {public int uniquePaths(int m, int n) {// dp表示到达ij有多少条路径int[][] dp new int[110][110];dp[1][1] 1;for(int i 0;i<m;i){dp[i][0] 1;}for(int j 0;j<n;j){dp[0][j] 1;}for(int i 1;i…

银行回单OCR识别技术原理

银行回单OCR&#xff08;光学字符识别&#xff09;技术通过结合图像处理、模式识别和自然语言处理&#xff08;NLP&#xff09;技术&#xff0c;将纸质或电子版银行回单中的非结构化文本&#xff08;如账号、金额、日期等&#xff09;转化为结构化数据。以下是其核心原理和关键…

Day22-二叉树的迭代遍历

昨天学习了递归遍历&#xff1a;递归就是一次次的把参数压入栈中&#xff0c;然后返回的时候还是上一次递归保存的参数。今天学习迭代遍历。迭代遍历就是用栈去模拟保存二叉树的节点&#xff0c;然后依次去遍历&#xff0c;只不过要注意栈的后入先出的规则。前序遍历&#xff1…

知识蒸馏 - 通过引入温度参数T调整 Softmax 的输出

知识蒸馏 - 通过引入温度参数T调整 Softmax 的输出 flyfish import torch import torch.nn.functional as F import matplotlib.pyplot as plt import numpy as np# 设置中文字体支持 plt.rcParams["font.family"] [AR PL UMing CN] # Linux plt.rcParams[axes.uni…

Java研学-RabbitMQ(三)

一 消息通信协议 1 AMQP AMQP 是一个开放的、跨语言、跨平台的消息协议标准&#xff0c;用于在分布式系统中传递业务消息。它定义了消息队列的二进制协议格式和交互模型&#xff08;如交换机、队列、绑定等&#xff09;&#xff0c;确保不同语言&#xff08;Java、Python、C#等…

http.client 教程-如何使用 Python 标准库发送 HTTP 请求

http.client 教程-如何使用 Python 标准库发送 HTTP 请求以下是 http.client 模块的详细使用教程&#xff0c;帮助你理解如何使用 Python 标准库发送 HTTP 请求&#xff1a;1. http.client 概述http.client 是 Python 内置的 HTTP 客户端库&#xff0c;提供了底层的 HTTP 协议实…

Android-三种持久化方式详解

持久化技术分为3种&#xff0c;文件&#xff0c;sharedPreferences存储&#xff0c;数据库来存储&#xff1b; 目录 文件存储&#xff1a; 利用SharedPreferences中读取数据 SQLite创建数据库 更新 添加 删除 查找&#xff1a; 文件存储&#xff1a; 文件存储是 Andr…

并发安全之锁机制一

锁机制一 锁机制是计算机系统中解决并发冲突的核心工具&#xff0c;其存在和应用场景源于一个根本问题&#xff1a;当多个执行单元&#xff08;线程、进程、分布式节点&#xff09;同时访问或修改同一份共享资源时&#xff0c;如何保证数据的正确性、一致性和系统可靠性&#x…

结合项目阐述 设计模式:单例、工厂、观察者、代理

原文链接&#xff1a;https://download.csdn.net/blog/column/12433305/133862792#_1613 1、工厂模式应用 C17及之后可编译 /*日志落地模块的实现1.抽象落地基类2.派生子类&#xff08;根据不同落地方向进行派生&#xff09;3.使用工厂模式进行创建与表示的分离 */#ifndef _…

uniapp 更新apk有缓存点不动,卸载安装apk没有问题。android

方式一。pages.json&#xff1a;"globalStyle" : {"navigationBarTextStyle" : "black","navigationBarTitleText" : "uni-app","navigationBarBackgroundColor" : "#F8F8F8","backgroundColor&qu…