- Switch to shared build-and-push.sh; version read from docs/changelog.md - Add docs/changelog.md; remove version.txt, .last-branch, .gitignore - Stack: image tag via SLEEP_MEDITATION_IMAGE_TAG - Downloader: YouTube support (yt-dlp + ffmpeg), best audio to mp3 - Downloader: Content-Type validation for direct URLs - Downloader: auto-fetch YouTube title; title field optional - Downloader: progress bar with phase (downloading/converting) - Downloader: store source URL per file; show Source link in manage list Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
43 lines
1.4 KiB
HTML
43 lines
1.4 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Sleep Meditation — Downloads</title>
|
|
<link rel="stylesheet" href="/styles.css">
|
|
</head>
|
|
<body>
|
|
|
|
<main class="app">
|
|
<header>
|
|
<h1>Downloads</h1>
|
|
<p>Manage tracks for Sleep Meditation. This page is internal only.</p>
|
|
</header>
|
|
|
|
<section class="card">
|
|
<label for="dl-url">Download track</label>
|
|
<input type="url" id="dl-url" placeholder="https://...">
|
|
<input type="text" id="dl-title" placeholder="Title (optional for YouTube)">
|
|
<button id="dl-btn" type="button">Download</button>
|
|
<progress id="dl-progress" value="0" max="100" hidden></progress>
|
|
<p id="dl-status" class="hint"></p>
|
|
</section>
|
|
|
|
<section class="card">
|
|
<label for="rename-select">Rename track</label>
|
|
<select id="rename-select" aria-label="Choose a track to rename"></select>
|
|
<input type="text" id="rename-input" placeholder="New title">
|
|
<button id="rename-btn" type="button">Save</button>
|
|
<p id="rename-status" class="hint"></p>
|
|
</section>
|
|
|
|
<section class="card">
|
|
<label>Manage downloads</label>
|
|
<div id="manage-list"><p class="hint">No tracks downloaded yet.</p></div>
|
|
</section>
|
|
</main>
|
|
|
|
<script src="/app.js" defer></script>
|
|
</body>
|
|
</html>
|