sleep-meditation/containers/sleep-meditation/site/index.html
Ivo Oskamp 0d9f20690f Release v0.1.6
- 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>
2026-05-10 15:13:10 +02:00

54 lines
1.7 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<title>Sleep Meditation</title>
<link rel="manifest" href="/manifest.webmanifest">
<link rel="stylesheet" href="/styles.css">
</head>
<body>
<!-- Player page -->
<main class="app" id="page-player">
<header>
<div class="header-top">
<h1>Sleep Meditation</h1>
<button id="refresh-btn" type="button" class="btn-refresh" title="Refresh"></button>
</div>
<p>Play relaxing MP3 tracks, including iPhone lock-screen playback after manual start.</p>
</header>
<section class="card">
<label for="playlist-select">Playlist</label>
<select id="playlist-select" aria-label="Choose a track"></select>
<audio id="player" controls preload="metadata" playsinline>
Your browser does not support the audio element.
</audio>
<div class="buttons">
<button id="prev" type="button">Previous</button>
<button id="play" type="button">Play/Pause</button>
<button id="next" type="button">Next</button>
<button id="restart" type="button">Back to start</button>
</div>
<p class="hint">
iPhone tip: tap Play once first. After that, audio usually continues on the lock screen.
</p>
</section>
<section class="card">
<label>Downloads</label>
<div id="download-list"><p class="hint">No tracks downloaded yet.</p></div>
</section>
</main>
<script src="/app.js" defer></script>
</body>
</html>