128 lines
3.4 KiB
YAML
128 lines
3.4 KiB
YAML
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
|