Add StartOS 0.4.0 packaging
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
id: youtube-summarizer
|
||||
title: YouTube Summarizer
|
||||
version: 0.1.0.1
|
||||
release-notes: >-
|
||||
Initial StartOS package. Download, transcribe, and summarize YouTube videos
|
||||
and podcast episodes using Google Gemini AI.
|
||||
license: Proprietary
|
||||
wrapper-repo: https://github.com/user/youtube-summarizer-startos
|
||||
upstream-repo: https://github.com/user/youtube-summarizer
|
||||
support-site: https://github.com/user/youtube-summarizer/issues
|
||||
marketing-site: https://github.com/user/youtube-summarizer
|
||||
build: ["make image"]
|
||||
|
||||
description:
|
||||
short: Download, transcribe, and summarize YouTube videos and podcasts with AI.
|
||||
long: >-
|
||||
YouTube Summarizer downloads audio from YouTube videos and podcast RSS feeds,
|
||||
transcribes them using Google Gemini, and produces structured topic-by-topic
|
||||
summaries with timestamps. Features include channel and podcast subscriptions
|
||||
with automatic new episode detection, organized history with folders,
|
||||
multiple AI model support, and a responsive web interface. Requires a
|
||||
Google Gemini API key (free tier available at aistudio.google.com/apikey).
|
||||
|
||||
assets:
|
||||
license: LICENSE
|
||||
icon: icon.png
|
||||
instructions: instructions.md
|
||||
docker-images: image.tar
|
||||
|
||||
main:
|
||||
type: docker
|
||||
image: main
|
||||
entrypoint: docker_entrypoint.sh
|
||||
args: []
|
||||
mounts:
|
||||
main: /data
|
||||
|
||||
health-checks:
|
||||
main:
|
||||
name: API health
|
||||
success-message: YouTube Summarizer is responding.
|
||||
type: docker
|
||||
image: main
|
||||
entrypoint: healthcheck.sh
|
||||
args: []
|
||||
inject: true
|
||||
|
||||
config: ~
|
||||
|
||||
dependencies: {}
|
||||
|
||||
volumes:
|
||||
main:
|
||||
type: data
|
||||
|
||||
interfaces:
|
||||
main:
|
||||
name: Web Interface
|
||||
description: Browser UI for YouTube Summarizer.
|
||||
tor-config:
|
||||
port-mapping:
|
||||
80: "3001"
|
||||
lan-config:
|
||||
443:
|
||||
ssl: true
|
||||
internal: 3001
|
||||
ui: true
|
||||
protocols: [tcp, http, https]
|
||||
|
||||
backup:
|
||||
create:
|
||||
type: docker
|
||||
image: main
|
||||
system: false
|
||||
entrypoint: sh
|
||||
args:
|
||||
- -c
|
||||
- |
|
||||
set -eu
|
||||
rm -rf /backup/*
|
||||
# Back up all persistent data except temp binaries (re-downloadable)
|
||||
mkdir -p /backup/history /backup/config
|
||||
cp -a /data/history/. /backup/history/ 2>/dev/null || true
|
||||
cp -a /data/config/. /backup/config/ 2>/dev/null || true
|
||||
cp /data/cookies.txt /backup/ 2>/dev/null || true
|
||||
cp /data/.env /backup/ 2>/dev/null || true
|
||||
mounts:
|
||||
main: /data
|
||||
BACKUP: /backup
|
||||
restore:
|
||||
type: docker
|
||||
image: main
|
||||
system: false
|
||||
entrypoint: sh
|
||||
args:
|
||||
- -c
|
||||
- |
|
||||
set -eu
|
||||
mkdir -p /data/history /data/config
|
||||
cp -a /backup/history/. /data/history/ 2>/dev/null || true
|
||||
cp -a /backup/config/. /data/config/ 2>/dev/null || true
|
||||
cp /backup/cookies.txt /data/ 2>/dev/null || true
|
||||
cp /backup/.env /data/ 2>/dev/null || true
|
||||
mounts:
|
||||
main: /data
|
||||
BACKUP: /backup
|
||||
|
||||
actions:
|
||||
update-ytdlp:
|
||||
name: Update yt-dlp
|
||||
description: >-
|
||||
Downloads the latest version of yt-dlp. Run this if YouTube downloads
|
||||
are failing — YouTube frequently changes its systems, requiring yt-dlp
|
||||
updates.
|
||||
warning: This may take a minute. The service will continue running.
|
||||
implementation:
|
||||
type: docker
|
||||
image: main
|
||||
system: false
|
||||
entrypoint: sh
|
||||
args:
|
||||
- -c
|
||||
- |
|
||||
pip3 install --break-system-packages -U yt-dlp curl_cffi 2>&1
|
||||
echo "---"
|
||||
echo "yt-dlp version: $(yt-dlp --version)"
|
||||
inject: true
|
||||
Reference in New Issue
Block a user