33 Commits

Author SHA1 Message Date
kennethreitz d83e39b910 Add self-hosted Umami analytics
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 02:56:03 -04:00
kennethreitz 4fd3596498 Add Gauges analytics to embed player
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 13:55:01 -04:00
kennethreitz 2151c26505 Add download and source code links to embed player
Each track now shows </> (view Python source on GitHub) and ↓ (download MP3) icons, matching the main site player.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 13:36:14 -04:00
kennethreitz a1a5463a2f Add streaming service links to embed player footer
Spotify, Apple Music, YouTube Music, GitHub links in footer bar.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:44:24 -04:00
kennethreitz 806067ff59 Add embeddable player widget with oEmbed support
embed.html: compact player with album art, oscilloscope, track picker.
oembed.json: oEmbed discovery for auto-embedding on WordPress, Notion, etc.
index.html: add oEmbed discovery link tag.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:31:28 -04:00
kennethreitz f09623c162 Website: hardcoded track durations, README pytheory link fix
All 24 durations visible immediately without playing. README links
to pytheory.kennethreitz.org instead of GitHub.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 17:02:52 -04:00
kennethreitz 94de406bdc Website: Apple Music first
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 04:30:18 -04:00
kennethreitz 5b01e3b610 Website: add Apple Music link
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 04:28:22 -04:00
kennethreitz 5366dad797 Remove 'every note placed by hand' — not accurate for most tracks
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 23:14:36 -04:00
kennethreitz b81df2bd22 Remove heart
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 14:08:54 -04:00
kennethreitz 143c7b4852 Website: thanks for listening ♡
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 14:06:19 -04:00
kennethreitz 0d26840ace Website: pytheory link → pytheory.kennethreitz.org
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 13:41:03 -04:00
kennethreitz d6c003514a Website: PWA manifest for iOS home screen install + background audio
Add to Home Screen on iOS to get background playback, standalone
app mode, and the album cover as the app icon.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 13:39:27 -04:00
kennethreitz dec607e6ae Website: iOS background playback fixes + lock screen seek bar
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 13:36:49 -04:00
kennethreitz 1a1062edeb Website: Media Session API — background playback + lock screen controls
Shows album art, title, artist on lock screen. Play/pause/next/prev
from notification. Audio continues when phone screen is off.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 13:32:34 -04:00
kennethreitz d53a2c80c1 Website: absolute URLs for Twitter/OG social cards
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 13:29:42 -04:00
kennethreitz 78a2fa715c Website: source code link per track — links to GitHub .py file
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 13:26:02 -04:00
kennethreitz 01abf2fdb7 Website: add YouTube Music link
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 13:10:28 -04:00
kennethreitz 4d87419eab Website: add Spotify link
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 13:08:56 -04:00
kennethreitz 8ac8907e5a Website: album description prose between cover and tracklist
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:39:21 -04:00
kennethreitz 361badf2e5 Embed album cover art in all MP3s
1024x1024 PNG cover in ID3v2 tags. Shows in any music player.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:34:37 -04:00
kennethreitz cc56d075ee Website: download all zip (built in Docker), duration, tab title
Zip generated at Docker build time — not checked into git.
Album duration shown (83:58). Browser tab shows now playing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:29:40 -04:00
kennethreitz f9d45dcde9 Website: sticky oscilloscope — stays on screen when scrolling
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:24:20 -04:00
kennethreitz 265346eaf9 Add Gauges analytics
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:21:02 -04:00
kennethreitz 938086337a Website: album art 560px — go big
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:17:40 -04:00
kennethreitz 75b70fabcb Website: album art 460px — the goldilocks size
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:16:04 -04:00
kennethreitz fdfe46860f Website: album art 380px — cover + a few tracks above the fold
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:14:37 -04:00
kennethreitz 1520a787b3 Website: bigger album art (560px, responsive)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:12:35 -04:00
kennethreitz 71eca537ab Re-encode all MP3s at 320 CBR with ID3 tags
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:10:40 -04:00
kennethreitz 5c28ee5fff Add ID3 tags to all MP3s — artist, album, track number, genre, year
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:07:25 -04:00
kennethreitz 0b1c7fa199 Website: MP3 download button per track
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 08:06:03 -04:00
kennethreitz 8b9dcb4bd4 Disable share links on tracks
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 01:05:02 -04:00
kennethreitz b6009f9a11 Add web player — HTML5 audio, oscilloscope, SEO, share links
Static site with nginx on fly.io. Features:
- Album art, track list with descriptions and metadata
- Persistent bottom player bar with seek, volume, next/prev
- Real-time oscilloscope via Web Audio API
- Deep linking via URL hash (#track_name)
- Share link per track (copy to clipboard)
- Keyboard shortcuts (space, arrows, n/p)
- Mobile responsive
- SEO meta tags, Open Graph, Twitter cards
- Streaming service link placeholders
- MP3s converted from WAVs for web delivery

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 00:39:40 -04:00