diff --git a/.gitea/workflows/build-push.yaml b/.gitea/workflows/build-push.yaml
deleted file mode 100644
index d47e145..0000000
--- a/.gitea/workflows/build-push.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-name: Build and Push Docker Image
-
-on:
- push:
- branches:
- - main
-
-jobs:
- build-and-push:
- runs-on: ubuntu-latest
- steps:
- # 1. Gitea에서 최신 코드 가져오기
- - name: Checkout repository
- uses: actions/checkout@v4
-
- # 2. Gitea 도커 레지스트리 로그인 (자동 토큰 사용)
- - name: Login to Gitea Registry
- run: echo "764d096a855224986a39901dadf4985e3c702223" | docker login git.savethenurse.com -u ${{ github.actor }} --password-stdin
-
- # 3. 도커 이미지 굽기
- - name: Build Docker Image
- run: docker build -t git.savethenurse.com/savethenurse/ai-media-hub:latest .
-
- # 4. 구워진 이미지를 Gitea로 밀어넣기
- - name: Push Docker Image
- run: docker push git.savethenurse.com/savethenurse/ai-media-hub:latest
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 4e07128..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,36 +0,0 @@
-# Stage 1: Build the Go application
-FROM golang:1.21-alpine AS builder
-
-WORKDIR /app
-# Mock basic go mod init so it can build without external pre-requisites
-RUN go mod init ai-media-hub && \
- go get github.com/gofiber/fiber/v2 github.com/gofiber/fiber/v2/middleware/cors github.com/gofiber/fiber/v2/middleware/logger github.com/gofiber/websocket/v2
-COPY backend/ ./backend/
-RUN CGO_ENABLED=0 GOOS=linux go build -o /ai-media-hub ./backend/main.go
-
-# Stage 2: Final runtime container with Python & Go binary
-FROM python:3.10-slim
-
-WORKDIR /app
-
-# Install dependencies (ffmpeg for yt-dlp processing)
-RUN apt-get update && \
- apt-get install -y --no-install-recommends ffmpeg curl ca-certificates && \
- rm -rf /var/lib/apt/lists/*
-
-# Install Python worker requirements
-COPY worker/requirements.txt ./
-RUN pip install --no-cache-dir -r requirements.txt
-
-# Copy Go binary from builder
-COPY --from=builder /ai-media-hub /app/ai-media-hub
-
-# Copy Frontend files and worker files
-COPY frontend/ ./frontend/
-COPY worker/ ./worker/
-
-# Expose port (Internal 8000)
-EXPOSE 8000
-
-# Entrypoint: Run Go backend
-CMD ["/app/ai-media-hub"]
diff --git a/backend/main.go b/backend/main.go
deleted file mode 100644
index 90c8329..0000000
--- a/backend/main.go
+++ /dev/null
@@ -1,156 +0,0 @@
-package main
-
-import (
- "bufio"
- "encoding/json"
- "fmt"
- "log"
- "net/http"
- "os"
- "os/exec"
- "sync"
-
- "github.com/gofiber/fiber/v2"
- "github.com/gofiber/fiber/v2/middleware/cors"
- "github.com/gofiber/fiber/v2/middleware/logger"
- "github.com/gofiber/websocket/v2"
-)
-
-func main() {
- app := fiber.New()
-
- app.Use(logger.New())
- app.Use(cors.New())
-
- // Sub-routes for views/assets
- app.Static("/", "./frontend")
-
- // Global Hub for Websocket
- type Client struct {
- Conn *websocket.Conn
- }
- var clients = make(map[*Client]bool)
- var clientsMu sync.Mutex
-
- broadcast := func(msg string) {
- clientsMu.Lock()
- defer clientsMu.Unlock()
- for client := range clients {
- if err := client.Conn.WriteMessage(websocket.TextMessage, []byte(msg)); err != nil {
- client.Conn.Close()
- delete(clients, client)
- }
- }
- }
-
- // API Routes
- api := app.Group("/api")
-
- api.Get("/search", func(c *fiber.Ctx) error {
- query := c.Query("q")
- apiKey := os.Getenv("GCP_API_KEY")
- cx := os.Getenv("GCP_CX")
-
- if apiKey == "" || cx == "" {
- return c.Status(500).JSON(fiber.Map{"error": "Search API keys not configured"})
- }
-
- searchURL := fmt.Sprintf("https://www.googleapis.com/customsearch/v1?q=%s&key=%s&cx=%s&searchType=image", query, apiKey, cx)
- resp, err := http.Get(searchURL)
- if err != nil {
- return c.Status(500).JSON(fiber.Map{"error": err.Error()})
- }
- defer resp.Body.Close()
-
- var result map[string]interface{}
- if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
- return c.Status(500).JSON(fiber.Map{"error": "Failed to parse search results"})
- }
-
- return c.JSON(fiber.Map{
- "status": "success",
- "data": result["items"],
- "query": query,
- })
- })
-
- api.Post("/download", func(c *fiber.Ctx) error {
- type Req struct {
- URL string `json:"url"`
- Start string `json:"start"`
- End string `json:"end"`
- }
- var req Req
- if err := c.BodyParser(&req); err != nil {
- return c.Status(400).JSON(fiber.Map{"error": "Invalid request body"})
- }
-
- // Run python worker in background
- go func() {
- args := []string{"./worker/downloader.py", req.URL}
- if req.Start != "" {
- args = append(args, "--start", req.Start)
- }
- if req.End != "" {
- args = append(args, "--end", req.End)
- }
-
- cmd := exec.Command("python3", args...)
- cmd.Env = append(os.Environ(), "PYTHONUNBUFFERED=1")
-
- stdout, _ := cmd.StdoutPipe()
- cmd.Start()
-
- scanner := bufio.NewScanner(stdout)
- for scanner.Scan() {
- line := scanner.Text()
- broadcast(line)
- log.Println("Worker:", line)
- }
- cmd.Wait()
- broadcast("PROGRESS: 100%")
- }()
-
- return c.JSON(fiber.Map{
- "status": "success",
- "message": "Download task queued",
- })
- })
-
- // WebSocket for progress
- app.Use("/ws", func(c *fiber.Ctx) error {
- if websocket.IsWebSocketUpgrade(c) {
- c.Locals("allowed", true)
- return c.Next()
- }
- return fiber.ErrUpgradeRequired
- })
-
- app.Get("/ws", websocket.New(func(c *websocket.Conn) {
- client := &Client{Conn: c}
- clientsMu.Lock()
- clients[client] = true
- clientsMu.Unlock()
-
- defer func() {
- clientsMu.Lock()
- delete(clients, client)
- clientsMu.Unlock()
- c.Close()
- }()
-
- for {
- if _, _, err := c.ReadMessage(); err != nil {
- break
- }
- }
- }))
-
- port := os.Getenv("PORT")
- if port == "" {
- port = "8000"
- }
-
- log.Printf("Server listening on port %s", port)
- log.Fatal(app.Listen(":" + port))
-}
diff --git a/frontend/index.html b/frontend/index.html
deleted file mode 100644
index 1f70182..0000000
--- a/frontend/index.html
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
- AI Media Hub
-
-
-
-
-
-
-
-
-
-
-
-
-
- Zone B: Smart Ingest
-
-
-
Drag & Drop files here
-
or click to browse
-
-
-
-
-
- Zone C: Direct Download
-
-
-
-
-
-
-
-
-
diff --git a/go.mod b/go.mod
deleted file mode 100644
index a17faf4..0000000
--- a/go.mod
+++ /dev/null
@@ -1,24 +0,0 @@
-module ai-media-hub
-
-go 1.22.2
-
-require (
- github.com/gofiber/fiber/v2 v2.52.12
- github.com/gofiber/websocket/v2 v2.2.1
-)
-
-require (
- github.com/andybalholm/brotli v1.1.0 // indirect
- github.com/fasthttp/websocket v1.5.3 // indirect
- github.com/google/uuid v1.6.0 // indirect
- github.com/klauspost/compress v1.17.9 // indirect
- github.com/mattn/go-colorable v0.1.13 // indirect
- github.com/mattn/go-isatty v0.0.20 // indirect
- github.com/mattn/go-runewidth v0.0.16 // indirect
- github.com/rivo/uniseg v0.2.0 // indirect
- github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee // indirect
- github.com/valyala/bytebufferpool v1.0.0 // indirect
- github.com/valyala/fasthttp v1.51.0 // indirect
- github.com/valyala/tcplisten v1.0.0 // indirect
- golang.org/x/sys v0.28.0 // indirect
-)
diff --git a/go.sum b/go.sum
deleted file mode 100644
index 3823c3a..0000000
--- a/go.sum
+++ /dev/null
@@ -1,33 +0,0 @@
-github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
-github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
-github.com/fasthttp/websocket v1.5.3 h1:TPpQuLwJYfd4LJPXvHDYPMFWbLjsT91n3GpWtCQtdek=
-github.com/fasthttp/websocket v1.5.3/go.mod h1:46gg/UBmTU1kUaTcwQXpUxtRwG2PvIZYeA8oL6vF3Fs=
-github.com/gofiber/fiber/v2 v2.52.12 h1:0LdToKclcPOj8PktUdIKo9BUohjjwfnQl42Dhw8/WUw=
-github.com/gofiber/fiber/v2 v2.52.12/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw=
-github.com/gofiber/websocket/v2 v2.2.1 h1:C9cjxvloojayOp9AovmpQrk8VqvVnT8Oao3+IUygH7w=
-github.com/gofiber/websocket/v2 v2.2.1/go.mod h1:Ao/+nyNnX5u/hIFPuHl28a+NIkrqK7PRimyKaj4JxVU=
-github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
-github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
-github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
-github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
-github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
-github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
-github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
-github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
-github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
-github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
-github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
-github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
-github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee h1:8Iv5m6xEo1NR1AvpV+7XmhI4r39LGNzwUL4YpMuL5vk=
-github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee/go.mod h1:qwtSXrKuJh/zsFQ12yEE89xfCrGKK63Rr7ctU/uCo4g=
-github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
-github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
-github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA=
-github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g=
-github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=
-github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
-golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
-golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
diff --git a/logs/build-push-build-and-push-4.log b/logs/build-push-build-and-push-4.log
deleted file mode 100644
index bc0c0b8..0000000
--- a/logs/build-push-build-and-push-4.log
+++ /dev/null
@@ -1,147 +0,0 @@
-2026-03-12T04:09:28.7508790Z 7906ada0cbde(version:v0.3.0) received task 4 of job build-and-push, be triggered by event: push
-2026-03-12T04:09:28.7512835Z workflow prepared
-2026-03-12T04:09:28.7514278Z evaluating expression 'success()'
-2026-03-12T04:09:28.7515378Z expression 'success()' evaluated to 'true'
-2026-03-12T04:09:28.7515666Z 🚀 Start image=docker.gitea.com/runner-images:ubuntu-latest
-2026-03-12T04:09:28.7606257Z 🐳 docker pull image=docker.gitea.com/runner-images:ubuntu-latest platform= username= forcePull=false
-2026-03-12T04:09:28.7606737Z 🐳 docker pull docker.gitea.com/runner-images:ubuntu-latest
-2026-03-12T04:09:28.7626583Z Image exists? true
-2026-03-12T04:09:28.7750736Z Cleaning up network for job build-and-push, and network name is: GITEA-ACTIONS-TASK-4_WORKFLOW-Build-and-Push-Docker-Image_JOB-build-and-push-build-and-push-network
-2026-03-12T04:09:29.0697355Z 🐳 docker create image=docker.gitea.com/runner-images:ubuntu-latest platform= entrypoint=["/bin/sleep" "10800"] cmd=[] network="GITEA-ACTIONS-TASK-4_WORKFLOW-Build-and-Push-Docker-Image_JOB-build-and-push-build-and-push-network"
-2026-03-12T04:09:29.7475993Z Created container name=GITEA-ACTIONS-TASK-4_WORKFLOW-Build-and-Push-Docker-Image_JOB-build-and-push id=cc8e77925af83eb08a3db75ba0970421e7d88073b80a1ef4796b1769bc05f230 from image docker.gitea.com/runner-images:ubuntu-latest (platform: )
-2026-03-12T04:09:29.7476818Z ENV ==> [RUNNER_TOOL_CACHE=/opt/hostedtoolcache RUNNER_OS=Linux RUNNER_ARCH=X64 RUNNER_TEMP=/tmp LANG=C.UTF-8]
-2026-03-12T04:09:29.7477366Z 🐳 docker run image=docker.gitea.com/runner-images:ubuntu-latest platform= entrypoint=["/bin/sleep" "10800"] cmd=[] network="GITEA-ACTIONS-TASK-4_WORKFLOW-Build-and-Push-Docker-Image_JOB-build-and-push-build-and-push-network"
-2026-03-12T04:09:29.7477730Z Starting container: cc8e77925af83eb08a3db75ba0970421e7d88073b80a1ef4796b1769bc05f230
-2026-03-12T04:09:31.2842843Z Started container: cc8e77925af83eb08a3db75ba0970421e7d88073b80a1ef4796b1769bc05f230
-2026-03-12T04:09:31.3783969Z Writing entry to tarball workflow/event.json len:5010
-2026-03-12T04:09:31.3784610Z Writing entry to tarball workflow/envs.txt len:0
-2026-03-12T04:09:31.3784877Z Extracting content to '/var/run/act/'
-2026-03-12T04:09:31.3907264Z ☁ git clone 'https://github.com/actions/checkout' # ref=v4
-2026-03-12T04:09:31.3907584Z cloning https://github.com/actions/checkout to /root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab
-2026-03-12T04:09:32.3476727Z Unable to pull refs/heads/v4: non-fast-forward update
-2026-03-12T04:09:32.3477128Z Cloned https://github.com/actions/checkout to /root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab
-2026-03-12T04:09:32.3822760Z Checked out v4
-2026-03-12T04:09:32.4084492Z evaluating expression ''
-2026-03-12T04:09:32.4085396Z expression '' evaluated to 'true'
-2026-03-12T04:09:32.4085611Z ⭐ Run Main Checkout repository
-2026-03-12T04:09:32.4085913Z Writing entry to tarball workflow/outputcmd.txt len:0
-2026-03-12T04:09:32.4086164Z Writing entry to tarball workflow/statecmd.txt len:0
-2026-03-12T04:09:32.4086347Z Writing entry to tarball workflow/pathcmd.txt len:0
-2026-03-12T04:09:32.4086527Z Writing entry to tarball workflow/envs.txt len:0
-2026-03-12T04:09:32.4086698Z Writing entry to tarball workflow/SUMMARY.md len:0
-2026-03-12T04:09:32.4086900Z Extracting content to '/var/run/act'
-2026-03-12T04:09:32.4192343Z expression '${{ github.repository }}' rewritten to 'format('{0}', github.repository)'
-2026-03-12T04:09:32.4192861Z evaluating expression 'format('{0}', github.repository)'
-2026-03-12T04:09:32.4193933Z expression 'format('{0}', github.repository)' evaluated to '%!t(string=savethenurse/ai-media-hub)'
-2026-03-12T04:09:32.4194619Z expression '${{ github.token }}' rewritten to 'format('{0}', github.token)'
-2026-03-12T04:09:32.4194805Z evaluating expression 'format('{0}', github.token)'
-2026-03-12T04:09:32.4195186Z expression 'format('{0}', github.token)' evaluated to '%!t(string=***)'
-2026-03-12T04:09:32.4195959Z type=remote-action actionDir=/root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab actionPath= workdir=/workspace/savethenurse/ai-media-hub actionCacheDir=/root/.cache/act actionName=c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab containerActionDir=/var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab
-2026-03-12T04:09:32.4196255Z /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab
-2026-03-12T04:09:32.4196574Z Removing /root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/.gitignore before docker cp
-2026-03-12T04:09:32.4197803Z 🐳 docker cp src=/root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/ dst=/var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/
-2026-03-12T04:09:32.4199379Z Writing tarball /tmp/act3994130466 from /root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/
-2026-03-12T04:09:32.4199683Z Stripping prefix:/root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/ src:/root/.cache/act/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/
-2026-03-12T04:09:32.5410621Z Extracting content from '/tmp/act3994130466' to '/var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/'
-2026-03-12T04:09:32.6787515Z executing remote job container: [node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js]
-2026-03-12T04:09:32.6788392Z 🐳 docker exec cmd=[node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js] user= workdir=
-2026-03-12T04:09:32.6788581Z Exec command '[node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js]'
-2026-03-12T04:09:32.6789044Z Working directory '/workspace/savethenurse/ai-media-hub'
-2026-03-12T04:09:32.8289673Z ::add-matcher::/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/problem-matcher.json
-2026-03-12T04:09:32.8290034Z ::add-matcher::/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/problem-matcher.json
-2026-03-12T04:09:32.8294541Z Syncing repository: savethenurse/ai-media-hub
-2026-03-12T04:09:32.8298579Z ::group::Getting Git version info
-2026-03-12T04:09:32.8298868Z Working directory is '/workspace/savethenurse/ai-media-hub'
-2026-03-12T04:09:32.8356159Z [command]/usr/bin/git version
-2026-03-12T04:09:32.8406340Z git version 2.53.0
-2026-03-12T04:09:32.8436094Z ::endgroup::
-2026-03-12T04:09:32.8947515Z Temporarily overriding HOME='/tmp/eb107421-2bd4-4be5-ae9a-7d0bc54de499' before making global git config changes
-2026-03-12T04:09:32.8948450Z Adding repository directory to the temporary git global config as a safe directory
-2026-03-12T04:09:32.8960723Z [command]/usr/bin/git config --global --add safe.directory /workspace/savethenurse/ai-media-hub
-2026-03-12T04:09:32.9024334Z Deleting the contents of '/workspace/savethenurse/ai-media-hub'
-2026-03-12T04:09:32.9032030Z ::group::Initializing the repository
-2026-03-12T04:09:32.9038300Z [command]/usr/bin/git init /workspace/savethenurse/ai-media-hub
-2026-03-12T04:09:32.9093939Z hint: Using 'master' as the name for the initial branch. This default branch name
-2026-03-12T04:09:32.9094253Z hint: will change to "main" in Git 3.0. To configure the initial branch name
-2026-03-12T04:09:32.9094424Z hint: to use in all of your new repositories, which will suppress this warning,
-2026-03-12T04:09:32.9094584Z hint: call:
-2026-03-12T04:09:32.9094734Z hint:
-2026-03-12T04:09:32.9094942Z hint: git config --global init.defaultBranch
-2026-03-12T04:09:32.9095204Z hint:
-2026-03-12T04:09:32.9095578Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
-2026-03-12T04:09:32.9095871Z hint: 'development'. The just-created branch can be renamed via this command:
-2026-03-12T04:09:32.9096111Z hint:
-2026-03-12T04:09:32.9096302Z hint: git branch -m
-2026-03-12T04:09:32.9096498Z hint:
-2026-03-12T04:09:32.9096882Z hint: Disable this message with "git config set advice.defaultBranchName false"
-2026-03-12T04:09:32.9097292Z Initialized empty Git repository in /workspace/savethenurse/ai-media-hub/.git/
-2026-03-12T04:09:32.9116652Z [command]/usr/bin/git remote add origin https://git.savethenurse.com/savethenurse/ai-media-hub
-2026-03-12T04:09:32.9164743Z ::endgroup::
-2026-03-12T04:09:32.9165197Z ::group::Disabling automatic garbage collection
-2026-03-12T04:09:32.9172591Z [command]/usr/bin/git config --local gc.auto 0
-2026-03-12T04:09:32.9221572Z ::endgroup::
-2026-03-12T04:09:32.9222418Z ::group::Setting up auth
-2026-03-12T04:09:32.9236228Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
-2026-03-12T04:09:32.9289501Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
-2026-03-12T04:09:32.9569053Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/git\.savethenurse\.com\/\.extraheader
-2026-03-12T04:09:32.9609467Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/git\.savethenurse\.com\/\.extraheader' && git config --local --unset-all 'http.https://git.savethenurse.com/.extraheader' || :"
-2026-03-12T04:09:33.0057967Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
-2026-03-12T04:09:33.0104094Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
-2026-03-12T04:09:33.0468083Z [command]/usr/bin/git config --local http.https://git.savethenurse.com/.extraheader AUTHORIZATION: basic ***
-2026-03-12T04:09:33.0510348Z ::endgroup::
-2026-03-12T04:09:33.0510996Z ::group::Fetching the repository
-2026-03-12T04:09:33.0524679Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +08ef719294e964c121589d1565388078c133050d:refs/remotes/origin/main
-2026-03-12T04:09:33.5428528Z From https://git.savethenurse.com/savethenurse/ai-media-hub
-2026-03-12T04:09:33.5429108Z * [new ref] 08ef719294e964c121589d1565388078c133050d -> origin/main
-2026-03-12T04:09:33.5478171Z ::endgroup::
-2026-03-12T04:09:33.5478777Z ::group::Determining the checkout info
-2026-03-12T04:09:33.5482436Z ::endgroup::
-2026-03-12T04:09:33.5488323Z [command]/usr/bin/git sparse-checkout disable
-2026-03-12T04:09:33.5549515Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
-2026-03-12T04:09:33.5601877Z ::group::Checking out the ref
-2026-03-12T04:09:33.5611451Z [command]/usr/bin/git checkout --progress --force -B main refs/remotes/origin/main
-2026-03-12T04:09:33.5698627Z Switched to a new branch 'main'
-2026-03-12T04:09:33.5701855Z branch 'main' set up to track 'origin/main'.
-2026-03-12T04:09:33.5713749Z ::endgroup::
-2026-03-12T04:09:33.5777968Z [command]/usr/bin/git log -1 --format=%H
-2026-03-12T04:09:33.5814484Z 08ef719294e964c121589d1565388078c133050d
-2026-03-12T04:09:33.5834687Z ::remove-matcher owner=checkout-git::
-2026-03-12T04:09:34.3229917Z Error response from daemon: Get "https://git.savethenurse.com/v2/": unauthorized
-2026-03-12T04:09:34.3275043Z ❌ Failure - Main Login to Gitea Registry
-2026-03-12T04:09:34.3344392Z exitcode '1': failure
-2026-03-12T04:09:34.4051705Z evaluating expression 'always()'
-2026-03-12T04:09:34.4053390Z expression 'always()' evaluated to 'true'
-2026-03-12T04:09:34.4053782Z ⭐ Run Post Checkout repository
-2026-03-12T04:09:34.4054086Z Writing entry to tarball workflow/outputcmd.txt len:0
-2026-03-12T04:09:34.4054352Z Writing entry to tarball workflow/statecmd.txt len:0
-2026-03-12T04:09:34.4054545Z Writing entry to tarball workflow/pathcmd.txt len:0
-2026-03-12T04:09:34.4054737Z Writing entry to tarball workflow/envs.txt len:0
-2026-03-12T04:09:34.4054914Z Writing entry to tarball workflow/SUMMARY.md len:0
-2026-03-12T04:09:34.4055111Z Extracting content to '/var/run/act'
-2026-03-12T04:09:34.4079454Z run post step for 'Checkout repository'
-2026-03-12T04:09:34.4080507Z executing remote job container: [node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js]
-2026-03-12T04:09:34.4080891Z 🐳 docker exec cmd=[node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js] user= workdir=
-2026-03-12T04:09:34.4081184Z Exec command '[node /var/run/act/actions/c3fe249fe73091a17d6638fe1341e7bd0bcc3466ce52323c0688e83e2463a4ab/dist/index.js]'
-2026-03-12T04:09:34.4081891Z Working directory '/workspace/savethenurse/ai-media-hub'
-2026-03-12T04:09:34.5674107Z [command]/usr/bin/git version
-2026-03-12T04:09:34.5723744Z git version 2.53.0
-2026-03-12T04:09:34.5754037Z ***
-2026-03-12T04:09:34.5776036Z Temporarily overriding HOME='/tmp/1a1ea8a6-37ff-4270-bda8-e0846f36d6f1' before making global git config changes
-2026-03-12T04:09:34.5776571Z Adding repository directory to the temporary git global config as a safe directory
-2026-03-12T04:09:34.5782226Z [command]/usr/bin/git config --global --add safe.directory /workspace/savethenurse/ai-media-hub
-2026-03-12T04:09:34.5831091Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
-2026-03-12T04:09:34.5874291Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
-2026-03-12T04:09:34.6281544Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/git\.savethenurse\.com\/\.extraheader
-2026-03-12T04:09:34.6321950Z http.https://git.savethenurse.com/.extraheader
-2026-03-12T04:09:34.6341390Z [command]/usr/bin/git config --local --unset-all http.https://git.savethenurse.com/.extraheader
-2026-03-12T04:09:34.6391437Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/git\.savethenurse\.com\/\.extraheader' && git config --local --unset-all 'http.https://git.savethenurse.com/.extraheader' || :"
-2026-03-12T04:09:34.6877264Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
-2026-03-12T04:09:34.6932520Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
-2026-03-12T04:09:34.7522386Z ✅ Success - Post Checkout repository
-2026-03-12T04:09:34.7599525Z Cleaning up container for job build-and-push
-2026-03-12T04:09:36.0169779Z Removed container: cc8e77925af83eb08a3db75ba0970421e7d88073b80a1ef4796b1769bc05f230
-2026-03-12T04:09:36.0190331Z 🐳 docker volume rm GITEA-ACTIONS-TASK-4_WORKFLOW-Build-and-Push-Docker-Image_JOB-build-and-push
-2026-03-12T04:09:36.0992410Z 🐳 docker volume rm GITEA-ACTIONS-TASK-4_WORKFLOW-Build-and-Push-Docker-Image_JOB-build-and-push-env
-2026-03-12T04:09:36.2314378Z Cleaning up network for job build-and-push, and network name is: GITEA-ACTIONS-TASK-4_WORKFLOW-Build-and-Push-Docker-Image_JOB-build-and-push-build-and-push-network
-2026-03-12T04:09:36.6380701Z 🏁 Job failed
-2026-03-12T04:09:36.6465899Z Job 'build-and-push' failed
diff --git a/unraid-template.xml b/unraid-template.xml
deleted file mode 100644
index d590375..0000000
--- a/unraid-template.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
- ai-media-hub
- git.savethenurse.com/savethenurse/ai-media-hub:latest
- https://git.savethenurse.com
- bridge
-
- sh
- false
- https://git.savethenurse.com/savethenurse/ai-media-hub/issues
- https://git.savethenurse.com/savethenurse/ai-media-hub
- AI Media Hub: A single container full-stack app for gathering, ingesting, and downloading media assets via AI Discovery and yt-dlp.
- MediaApp:Video Downloaders:Tools:
- http://[IP]:[PORT:8000]
-
- https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/youtube.png
-
-
-
-
-
-
-
- 8282
- /mnt/user/downloads/media
-
diff --git a/worker/downloader.py b/worker/downloader.py
deleted file mode 100644
index b4ea9d8..0000000
--- a/worker/downloader.py
+++ /dev/null
@@ -1,40 +0,0 @@
-import os
-import sys
-import argparse
-import yt_dlp
-
-def progress_hook(d):
- if d['status'] == 'downloading':
- percent = d.get('_percent_str', 'N/A')
- print(f"PROGRESS: {percent}", flush=True)
-
-def main():
- parser = argparse.ArgumentParser(description="Media Downloader via yt-dlp")
- parser.add_argument("url", help="URL of the media to download")
- parser.add_argument("--start", help="Start time for crop (e.g. 00:01:00)", default=None)
- parser.add_argument("--end", help="End time for crop (e.g. 00:02:30)", default=None)
- args = parser.parse_args()
-
- ydl_opts = {
- 'outtmpl': '/downloads/%(title)s.%(ext)s',
- 'progress_hooks': [progress_hook],
- 'quiet': True,
- 'no_warnings': True,
- }
-
- if args.start and args.end:
- print(f"Applying crop from {args.start} to {args.end}")
- # Note: In a real environment, you might use format sorting and postprocessors like FFmpeg directly.
- # This is a sample placeholder for the structure.
-
- # Try downloading
- try:
- with yt_dlp.YoutubeDL(ydl_opts) as ydl:
- print("Download started...")
- ydl.download([args.url])
- print("Download finished.")
- except Exception as e:
- print(f"Error starting download: {e}", file=sys.stderr)
-
-if __name__ == "__main__":
- main()
diff --git a/worker/requirements.txt b/worker/requirements.txt
deleted file mode 100644
index dccc462..0000000
--- a/worker/requirements.txt
+++ /dev/null
@@ -1 +0,0 @@
-yt-dlp>=2023.10.13