From 2e462527d0560e29da4cad4b45798089d714bb9b Mon Sep 17 00:00:00 2001 From: okxlin Date: Sun, 1 Sep 2024 21:43:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0metube=E5=88=B0=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/metube/README.md | 11 ++ apps/metube/data.yml | 19 +++ apps/metube/latest/.env.sample | 18 +++ apps/metube/latest/data.yml | 154 +++++++++++++++++++++++ apps/metube/latest/data/.metube/.gitkeep | 0 apps/metube/latest/data/audio/.gitkeep | 0 apps/metube/latest/data/temp/.gitkeep | 0 apps/metube/latest/docker-compose.yml | 34 +++++ apps/metube/latest/scripts/init.sh | 3 + apps/metube/logo.png | Bin 0 -> 2074 bytes 10 files changed, 239 insertions(+) create mode 100644 apps/metube/README.md create mode 100644 apps/metube/data.yml create mode 100644 apps/metube/latest/.env.sample create mode 100644 apps/metube/latest/data.yml create mode 100644 apps/metube/latest/data/.metube/.gitkeep create mode 100644 apps/metube/latest/data/audio/.gitkeep create mode 100644 apps/metube/latest/data/temp/.gitkeep create mode 100644 apps/metube/latest/docker-compose.yml create mode 100644 apps/metube/latest/scripts/init.sh create mode 100644 apps/metube/logo.png diff --git a/apps/metube/README.md b/apps/metube/README.md new file mode 100644 index 00000000..5ecdac1e --- /dev/null +++ b/apps/metube/README.md @@ -0,0 +1,11 @@ +# MeTube + +![Build Status](https://github.com/alexta69/metube/actions/workflows/main.yml/badge.svg) +![Docker Pulls](https://img.shields.io/docker/pulls/alexta69/metube.svg) + +MeTube 是一个基于 Web 的 GUI,支持 YouTube-DL(使用 [yt-dlp](https://github.com/yt-dlp/yt-dlp) 分支)并支持播放列表。它允许你从 YouTube 和 [其他数十个网站](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md) 下载视频。 + + +## 使用说明 + +假如下载权限有问题,则修改映射的下载文件夹用户组权限为`1000:1000`。 \ No newline at end of file diff --git a/apps/metube/data.yml b/apps/metube/data.yml new file mode 100644 index 00000000..9be51396 --- /dev/null +++ b/apps/metube/data.yml @@ -0,0 +1,19 @@ +name: MeTube +tags: + - 多媒体 +title: 媒体下载工具 +description: 媒体下载工具 +additionalProperties: + key: metube + name: MeTube + tags: + - Media + shortDescZh: 媒体下载工具 + shortDescEn: Media downloader tool + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://github.com/alexta69/metube + github: https://github.com/alexta69/metube + document: https://github.com/alexta69/metube diff --git a/apps/metube/latest/.env.sample b/apps/metube/latest/.env.sample new file mode 100644 index 00000000..c073f418 --- /dev/null +++ b/apps/metube/latest/.env.sample @@ -0,0 +1,18 @@ +AUDIO_DOWNLOAD_DIR="/downloads/audio" +CONTAINER_NAME="metube" +CREATE_CUSTOM_DIRS="true" +CUSTOM_DIRS="true" +DEFAULT_OPTION_PLAYLIST_ITEM_LIMIT=0 +DEFAULT_OPTION_PLAYLIST_STRICT_MODE="false" +DEFAULT_THEME="auto" +DELETE_FILE_ON_TRASHCAN="false" +DOWNLOAD_DIR="./data" +DOWNLOAD_DIRS_INDEXABLE="false" +GID=1000 +PANEL_APP_PORT_HTTP=40289 +PUBLIC_HOST_AUDIO_URL="" +PUBLIC_HOST_URL="" +STATE_DIR="/downloads/.metube" +TEMP_DIR="/downloads/temp" +UID=1000 +URL_PREFIX="/" diff --git a/apps/metube/latest/data.yml b/apps/metube/latest/data.yml new file mode 100644 index 00000000..c0181840 --- /dev/null +++ b/apps/metube/latest/data.yml @@ -0,0 +1,154 @@ +additionalProperties: + formFields: + - default: "40289" + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: "./data" + edit: true + envKey: DOWNLOAD_DIR + labelEn: Download Directory + labelZh: 下载目录 + required: true + type: text + - default: "1000" + disabled: true + envKey: UID + labelEn: UID + labelZh: 用户 ID + required: true + type: number + - default: "1000" + disabled: true + envKey: GID + labelEn: GID + labelZh: 用户组 ID + required: true + type: number + - default: "auto" + edit: true + envKey: DEFAULT_THEME + labelEn: Default Theme + labelZh: 默认主题 + required: true + type: select + values: + - label: "Light" + value: "light" + - label: "Dark" + value: "dark" + - label: "Auto" + value: "auto" + - default: "/downloads/audio" + disabled: true + envKey: AUDIO_DOWNLOAD_DIR + labelEn: Audio Download Directory + labelZh: 音频下载目录 + required: false + type: text + - default: "/downloads/.metube" + disabled: true + envKey: STATE_DIR + labelEn: State Directory + labelZh: 状态目录 + required: true + type: text + - default: "/downloads/temp" + disabled: true + envKey: TEMP_DIR + labelEn: Temp Directory + labelZh: 临时目录 + required: false + type: text + - default: "false" + edit: true + envKey: DOWNLOAD_DIRS_INDEXABLE + labelEn: Download Dirs Indexable + labelZh: 目录可索引 + required: true + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" + - default: "true" + edit: true + envKey: CUSTOM_DIRS + labelEn: Custom Directories + labelZh: 自定义目录 + required: true + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" + - default: "true" + edit: true + envKey: CREATE_CUSTOM_DIRS + labelEn: Create Custom Directories + labelZh: 创建自定义目录 + required: true + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" + - default: "false" + edit: true + envKey: DELETE_FILE_ON_TRASHCAN + labelEn: Delete File on Trashcan + labelZh: 删除文件 + required: true + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" + - default: "/" + edit: true + envKey: URL_PREFIX + labelEn: URL Prefix + labelZh: URL 前缀 + required: true + type: text + - default: "" + edit: true + envKey: PUBLIC_HOST_URL + labelEn: Public Host URL + labelZh: 公共主机URL + required: false + type: text + - default: "" + edit: true + envKey: PUBLIC_HOST_AUDIO_URL + labelEn: Public Host Audio URL + labelZh: 公共音频主机URL + required: false + type: text + - default: "false" + edit: true + envKey: DEFAULT_OPTION_PLAYLIST_STRICT_MODE + labelEn: Strict Playlist Mode + labelZh: 严格播放列表模式 + required: true + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" + - default: "0" + edit: true + envKey: DEFAULT_OPTION_PLAYLIST_ITEM_LIMIT + labelEn: Playlist Item Limit + labelZh: 播放列表项限制 + required: true + type: number diff --git a/apps/metube/latest/data/.metube/.gitkeep b/apps/metube/latest/data/.metube/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/apps/metube/latest/data/audio/.gitkeep b/apps/metube/latest/data/audio/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/apps/metube/latest/data/temp/.gitkeep b/apps/metube/latest/data/temp/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/apps/metube/latest/docker-compose.yml b/apps/metube/latest/docker-compose.yml new file mode 100644 index 00000000..94cf71c3 --- /dev/null +++ b/apps/metube/latest/docker-compose.yml @@ -0,0 +1,34 @@ +services: + metube: + image: "alexta69/metube:latest" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8081 + volumes: + - ${DOWNLOAD_DIR}:/downloads + environment: + - UID=${UID} + - GID=${GID} + - UMASK=022 + - DEFAULT_THEME=${DEFAULT_THEME} + - AUDIO_DOWNLOAD_DIR=${AUDIO_DOWNLOAD_DIR} + - DOWNLOAD_DIRS_INDEXABLE=${DOWNLOAD_DIRS_INDEXABLE} + - CUSTOM_DIRS=${CUSTOM_DIRS} + - CREATE_CUSTOM_DIRS=${CREATE_CUSTOM_DIRS} + - STATE_DIR=${STATE_DIR} + - TEMP_DIR=${TEMP_DIR} + - DELETE_FILE_ON_TRASHCAN=${DELETE_FILE_ON_TRASHCAN} + - URL_PREFIX=${URL_PREFIX} + - PUBLIC_HOST_URL=${PUBLIC_HOST_URL} + - PUBLIC_HOST_AUDIO_URL=${PUBLIC_HOST_AUDIO_URL} + - DEFAULT_OPTION_PLAYLIST_STRICT_MODE=${DEFAULT_OPTION_PLAYLIST_STRICT_MODE} + - DEFAULT_OPTION_PLAYLIST_ITEM_LIMIT=${DEFAULT_OPTION_PLAYLIST_ITEM_LIMIT} + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/metube/latest/scripts/init.sh b/apps/metube/latest/scripts/init.sh new file mode 100644 index 00000000..4e811c86 --- /dev/null +++ b/apps/metube/latest/scripts/init.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +chown -R 1000:1000 data \ No newline at end of file diff --git a/apps/metube/logo.png b/apps/metube/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4fdd16ff9225524f11db84ce82bdb0cd35828b1e GIT binary patch literal 2074 zcmd6o`#%%)cSV4^J-*TiGo(OUsvkNnf+g8ci!t=bCChk?I0SYHQ07eH4Bc*h2H zHGo6}C@bKB1#7Edc?pyi19um|%mb%f0jC!Po&)o9V0;urgn+wgptTvaG=kbHa61z4 zc_1Yo)I0_Wv0#P|rl$a_4ix5sYeB%?oV!ybzx5zXiYv}dZ0=Jwcj=p~V12eeA;M(1 zA#|m~P{F3Z;*vSLI!I}(Fu)a~rP|wlOAne#^pv8ZOLKFQ2*}M%PqQ*HF&WBHl)ZcS zm~g_|a}22(?cWTgJ4@U?Jp0q|rRb~F<4|;S-O$*pbx_2qh!6OvpL=3D=uj_u|Bct- zytDem-x8_QmZ|@%pGC&T;WmXNv%DwS>M71By4%AMLY1eXvUR~=7&9Gn-js>d!Oy=} z_uvA`!I(t7ZMj{SA~ugtRzZiHj#&QSr| zns;8e#?{*G%3i$>_SlpeshnZ>t5$#Q*RsSB;gTGyQVnB3CoE%_BgYOJ7QRq&Qokg; zak^3tm*jYl+x*$p9nQtl&vt&Jk&Rhii*YSs{ttHdT-$x(JD>cp43{jNfl0%4VNqj+ zBQDt6$9W-T^2#M?ti4uKi|~&L%lzOyikNTvyFBuYVl+$~e4ed%TO8>|NQO5kAG=iT zCLOmY(CAcAzDWGY%}g?H($Al}5^vUzNJ*8BIpEq!neY=*Wxg34KJP@4VAPW8g>}2e z=E^J4S?6BYB#vwC(_9=rPF0_$@3Ofs{yIj`t@&ZH zuoa8dQ}+6FY%=UitOSPr^zEUnuTW%L!D&82-DVChjiIn1pVDzs;#R*#Cn~N*PlOe9 zn5Qp3^(#546R#hU!`<63k*A}hzt6wq5fWFFukeOoZka1Ub{90GjF33(LQt=@@$;th z4o$iVM*`pX(=P0Z`TVBfE7HCd)es%4=oIf!x;-u0@Ks!*NCFZWG2cvBZ26;J5%DL3 zWY>ozMF#j?RKEOJR|*l#AQ|B8gVy_9mU;t_NObX?cU5iklJeS1Ki()(e6*n{eWOg; z$?!O6-$FnsJTOHRhJDe{$k~YxjzS?m47W>WQ3GD5YSYPSGLhlyiX4tOPC41AF9QjVqg`DU<&dRc2VaKyRas;Ay zYOv+ek@ms#lF>L)pTUDFwA-CcbF{7{Snce)iaS6Vfk95a<24(Vf}QwkJvC;|epyAh z2NS|!bcrW%xPOpt>vLs#<5I6El{Wo%DIyItOov5~r8sVxN zp~Zfe5Q1T@7DRJcsYm3rJ#D+zz3r*-wNS{Kkk{NQI6g?eg~;E?bp)*F(S)d%8pYZh zfoU>JJd%y(Mibr~hWa_>TRgSd^3ibOf%e7|r-n&i9fTE2dxJBJl8jxnduMpFUvMR0 zsr7{>zO&P_^N$F<0ZRgs=Ht}_H`P_upVvc!KWRP0l2 zR3e%Ml>WHpTyjlxvBZ}_f)x7c5p-DcF?UJQumZ)_fXAp|=gY4CdW2Tg3|i;htQIj5 zKdZIU03}4}(Bf3ox!cG-_>wZB_dCmr-lB?M2RRc&m)L$XN6Kgi$7wH=Gk z$c#Sl&T0ZVQFx%rJdeUdGvJc6|xmA%aFM5gC z0qfu)dtEg+jb2t+P&IxvLV0gZrtz+}B^#c*!2lt9;N@iKE4#@+j4jb}cIU?FUsXJ* zpVwU~J|?TSTp2d*YQ&kEG`(if5p`;w!LePugDY38+9KxK-&#jehl2q9X@1F`h2QJS zD=W({wv1bZmcf!&c^($&aLQ$FDDCn^$W`VU9M|DoYOm{46%@eWK@ U>@lCO-C~&7Q8W(q)WI+IFK@#jK>z>% literal 0 HcmV?d00001