diff --git a/.github/README.md b/.github/README.md
index a5a4b324..457d700e 100644
--- a/.github/README.md
+++ b/.github/README.md
@@ -123,6 +123,7 @@
| 🟢 |
| Docker Mailserver | https://docker-mailserver.github.io/docker-mailserver/latest/ | 可用于生产的全栈但简单的邮件服务器 | |
| 🟢 |
| MaxKB | https://maxkb.cn/ | 基于 LLM 大语言模型的知识库问答系统 | |
| 🟢 |
| Media CMS | https://mediacms.io/ | 现代、功能齐全的开源视频和媒体内容管理系统 | |
+| 🟢 |
| MetaTube | https://github.com/metatube-community/ | 为 Jellyfin/Emby/Plex 开发的超级好用的成人元数据刮削插件 | |
| 🟢 |
| MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | |
| 🟢 |
| MoviePilot | https://github.com/jxxghp/MoviePilot/ | NAS媒体库自动化管理工具 | |
| 🟢 |
| MySQL | https://www.mysql.com/ | 关系数据库管理系统 | MySQL |
diff --git a/README.md b/README.md
index 491b5604..ee578a80 100644
--- a/README.md
+++ b/README.md
@@ -106,6 +106,7 @@
| 🟢 |
| Docker Mailserver | https://docker-mailserver.github.io/docker-mailserver/latest/ | 可用于生产的全栈但简单的邮件服务器 | |
| 🟢 |
| MaxKB | https://maxkb.cn/ | 基于 LLM 大语言模型的知识库问答系统 | |
| 🟢 |
| Media CMS | https://mediacms.io/ | 现代、功能齐全的开源视频和媒体内容管理系统 | |
+| 🟢 |
| MetaTube | https://github.com/metatube-community/ | 为 Jellyfin/Emby/Plex 开发的超级好用的成人元数据刮削插件 | |
| 🟢 |
| MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | |
| 🟢 |
| MoviePilot | https://github.com/jxxghp/MoviePilot/ | NAS媒体库自动化管理工具 | |
| 🟢 |
| MySQL | https://www.mysql.com/ | 关系数据库管理系统 | MySQL |
diff --git a/apps/metatube-server/1.2.8/data.yml b/apps/metatube-server/1.2.8/data.yml
new file mode 100644
index 00000000..25bee4cb
--- /dev/null
+++ b/apps/metatube-server/1.2.8/data.yml
@@ -0,0 +1,91 @@
+additionalProperties:
+ formFields:
+ - child:
+ default: ""
+ envKey: PANEL_POSTGRES_SERVICE
+ required: true
+ type: service
+ default: postgresql
+ envKey: PANEL_POSTGRES_TYPE
+ labelZh: Postgres 服务 (前置检查)
+ labelEn: Postgres Service (Pre-check)
+ required: true
+ type: apps
+ values:
+ - label: PostgreSQL
+ value: postgresql
+ - default: "/home/ani-rss"
+ edit: true
+ envKey: METATUBE_ROOT_PATH
+ labelZh: 数据持久化路径
+ labelEn: Data persistence path
+ required: true
+ type: text
+ - default: 8080
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelZh: WebUI 端口
+ labelEn: WebUI port
+ required: true
+ rule: paramPort
+ type: number
+ - default: ""
+ edit: true
+ envKey: TOKEN
+ labelZh: 访问令牌
+ labelEn: Access Token
+ required: true
+ type: text
+ - default: "127.0.0.1"
+ edit: true
+ envKey: POSTGRES_HOST
+ labelZh: 数据库 主机地址
+ labelEn: Database Host
+ required: true
+ type: text
+ - default: 5432
+ edit: true
+ envKey: POSTGRES_PORT
+ labelZh: 数据库 端口
+ labelEn: Database Port
+ required: true
+ rule: paramPort
+ type: number
+ - default: "metatube"
+ edit: true
+ envKey: POSTGRES_NAME
+ labelZh: 数据库 名称
+ labelEn: Database Name
+ required: true
+ rule: paramCommon
+ type: text
+ - default: "metatube"
+ edit: true
+ envKey: POSTGRES_USER
+ labelZh: 数据库 用户名
+ labelEn: Database Username
+ required: true
+ type: text
+ - default: ""
+ edit: true
+ envKey: POSTGRES_PASSWORD
+ labelZh: 数据库 密码
+ labelEn: Database Password
+ random: true
+ required: true
+ rule: paramComplexity
+ type: password
+ - default: "1m"
+ edit: true
+ envKey: REQUEST_TIMEOUT
+ labelZh: 请求超时时间
+ labelEn: Request Timeout
+ required: true
+ type: text
+ - default: ""
+ edit: true
+ envKey: HTTP_PROXY
+ labelZh: 网络代理 (HTTP/Socket5)
+ labelEn: Network Proxy (HTTP/Socket5)
+ required: false
+ type: text
diff --git a/apps/metatube-server/1.2.8/docker-compose.yml b/apps/metatube-server/1.2.8/docker-compose.yml
new file mode 100644
index 00000000..7479d8bc
--- /dev/null
+++ b/apps/metatube-server/1.2.8/docker-compose.yml
@@ -0,0 +1,27 @@
+networks:
+ 1panel-network:
+ external: true
+
+services:
+ metatube-server:
+ image: metatube/metatube-server:1.2.8
+ container_name: ${CONTAINER_NAME}
+ labels:
+ createdBy: "Apps"
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - ${PANEL_APP_PORT_HTTP}:8080
+ env_file:
+ - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env}
+ - ${ENV_FILE:-/etc/1panel/envs/default.env}
+ volumes:
+ - ${METATUBE_ROOT_PATH}/data:/var/run
+ environment:
+ - HTTPS_PROXY=${HTTP_PROXY}
+ - DB_MAX_IDLE_CONNS=0
+ - DB_MAX_OPEN_CONNS=0
+ - DB_PREPARED_STMT=false
+ - DB_AUTO_MIGRATE=true
+ command: -dsn "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_NAME}" -port 8080 -db-auto-migrate -db-prepared-stmt
diff --git a/apps/metatube-server/1.2.8/envs/default.env b/apps/metatube-server/1.2.8/envs/default.env
new file mode 100644
index 00000000..cd05f46e
--- /dev/null
+++ b/apps/metatube-server/1.2.8/envs/default.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+ENV_FILE=.env
diff --git a/apps/metatube-server/1.2.8/envs/global.env b/apps/metatube-server/1.2.8/envs/global.env
new file mode 100644
index 00000000..e10989fe
--- /dev/null
+++ b/apps/metatube-server/1.2.8/envs/global.env
@@ -0,0 +1,2 @@
+# copyright© 2024 XinJiang Ms Studio
+TZ=Asia/Shanghai
diff --git a/apps/metatube-server/1.2.8/scripts/init.sh b/apps/metatube-server/1.2.8/scripts/init.sh
new file mode 100644
index 00000000..07fb8c3f
--- /dev/null
+++ b/apps/metatube-server/1.2.8/scripts/init.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ # setup-1 add default values
+ CURRENT_DIR=$(pwd)
+ sed -i '/^ENV_FILE=/d' .env
+ sed -i '/^GLOBAL_ENV_FILE=/d' .env
+ echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
+ echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/apps/metatube-server/1.2.8/scripts/uninstall.sh b/apps/metatube-server/1.2.8/scripts/uninstall.sh
new file mode 100644
index 00000000..c86c4fbc
--- /dev/null
+++ b/apps/metatube-server/1.2.8/scripts/uninstall.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/apps/metatube-server/1.2.8/scripts/upgrade.sh b/apps/metatube-server/1.2.8/scripts/upgrade.sh
new file mode 100644
index 00000000..07fb8c3f
--- /dev/null
+++ b/apps/metatube-server/1.2.8/scripts/upgrade.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if [ -f .env ]; then
+ source .env
+
+ # setup-1 add default values
+ CURRENT_DIR=$(pwd)
+ sed -i '/^ENV_FILE=/d' .env
+ sed -i '/^GLOBAL_ENV_FILE=/d' .env
+ echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
+ echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
+
+ echo "Check Finish."
+
+else
+ echo "Error: .env file not found."
+fi
diff --git a/apps/metatube-server/README.md b/apps/metatube-server/README.md
new file mode 100644
index 00000000..5423acef
--- /dev/null
+++ b/apps/metatube-server/README.md
@@ -0,0 +1,81 @@
+# MetaTube 服务端
+
+为 Jellyfin/Emby/Plex 开发的超级好用的元数据插件
+
+![MetaTube](https://file.lifebus.top/imgs/metatube.png)
+
+![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
+
+## 应用特性
+
++ 完整数据:包括标题、简介、演员、标签、评分等内容。
++ 完整搜索:支持通过众多的刮削源搜索影片和演员信息。
++ 预告功能:无需下载完整预告视频即可在线观看预告片。
++ 计划任务:自动整理影片标签以及在后台自动更新插件。
++ 人脸识别:内置的人脸识别以人脸为中心裁剪海报图像。
++ 自动翻译:支持将特定的元数据内容翻译成需要的语言。
+
+## 应用说明
+
+## 插件安装
+
+### Jellyfin
+
+1. 进入 Jellyfin 控制台 > 插件目录/存储库 > 设置,点击添加
+2. 输入存储库名称:MetaTube
+3. 输入存储库
+
+```url
+# URL for GitHub
+https://raw.githubusercontent.com/metatube-community/jellyfin-plugin-metatube/dist/manifest.json
+```
+
+4. 在插件目录下找到 MetaTube,点击安装
+5. 重启 Jellyfin
+
+> 适用于中国大陆的存储库
+>
+> ```url
+> # URL for jsDelivr
+> https://cdn.jsdelivr.net/gh/metatube-community/jellyfin-plugin-metatube@dist/manifest.json
+> ```
+
+### Emby
+
+1. 从 Releases 下载 MetaTube 最新插件
+2. 解压出 MetaTube.dll 文件
+3. 将 dll 文件复制到 Emby 插件目录
+4. 重启 Emby 服务
+
+> PS:Emby 后续插件更新由计划任务在后台自动完成。
+
+### Plex
+
+1. 从 [GitHub](https://github.com/metatube-community/metatube-plex-plugins/archive/refs/heads/main.zip)
+ 或 [Releases](https://github.com/metatube-community/metatube-plex-plugins/releases) 下载最新的插件
+ zip 文件
+2. 将解压后的 MetaTube.bundle 文件夹移入 Plex 插件目录的根目录
+3. 其中文件夹 MetaTubeHelper.bundle 为辅助插件,可选择性安装
+4. 重启 Plex 服务
+
+### 常见 Emby 插件应用目录
+
+#### 群晖
+
+`/volume1/Emby/plugins`
+
+#### Windows
+
+`emby\programdata\plugins`
+
+#### Docker
+
+`<配置文件夹>/plugins`
+
+#### Linux(供参考)
+
+`/var/lib/emby-server/plugins/`
+
+---
+
+![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
diff --git a/apps/metatube-server/data.yml b/apps/metatube-server/data.yml
new file mode 100644
index 00000000..b0d3691b
--- /dev/null
+++ b/apps/metatube-server/data.yml
@@ -0,0 +1,15 @@
+additionalProperties:
+ key: metatube-server
+ name: MetaTube
+ tags:
+ - WebSite
+ - Tool
+ - Local
+ shortDescZh: 为 Jellyfin/Emby/Plex 开发的超级好用的成人元数据刮削插件
+ shortDescEn: A super easy-to-use adult metadata scraping plugin developed for Jellyfin/Emby/Plex
+ type: website
+ crossVersionUpdate: true
+ limit: 0
+ website: https://github.com/metatube-community/
+ github: https://github.com/metatube-community/
+ document: https://metatube-community.github.io/
diff --git a/apps/metatube-server/logo.png b/apps/metatube-server/logo.png
new file mode 100644
index 00000000..5671ce95
Binary files /dev/null and b/apps/metatube-server/logo.png differ