Skip to content

Quill Converter: Convert from URL takes playlists and YouTube channels - #1600

Merged
accesswatch merged 4 commits into
mainfrom
feat/converter-playlists
Sep 28, 2026
Merged

accesswatch merged 4 commits into
mainfrom
feat/converter-playlists

Conversation

@accesswatch

Copy link
Copy Markdown
Contributor

Convert from URL now reads the link first and, for a playlist or a YouTube channel, asks how much to take (whole playlist or first N; channel section, newest N, published within; skip what was already downloaded). Every video's audio joins the queue in order, tagged as one album with track numbers. The download is a normal Converter job with progress, Stop and a report. deno (yt-dlp's JavaScript runtime for YouTube) is now bundled with the Converter.

Tests: 22 new; platform_report 42/42; live-checked against YouTube.

🤖 Generated with Claude Code

The link is read first, without downloading anything
(quill/core/audio/url_collections.py read_link): one video goes straight to
the existing path; a playlist or channel opens Download a Playlist or Channel
(quill/ui/converter_dialogs.py) -- only this video or the whole playlist, how
many (a channel is newest first and defaults to 25), which channel section
(Videos, Shorts, Live streams; only those that exist), published within a
week/month/year, and Skip videos already downloaded from here (a per-link
yt-dlp download archive).

The download is a Converter job (quill/apps/converter_url.py): progress bar,
"Downloading 7 of 42: title", Stop, and failures in the report. Files are
numbered in playlist order (a channel's by date) and tagged with the
collection as album and a track number (MetadataParser + FFmpegMetadata), so
they play in order and Join makes one audiobook. Long runs pause between
videos. Output defaults to Downloads\Converted\<playlist>.

deno, yt-dlp's JavaScript runtime for YouTube, is now bundled with the
Converter (installer runtime and portable) and passed to yt-dlp from both URL
paths; without it YouTube links could fail.

Egress entry, F1 help and surface purpose, dialog/accessible-name/help
inventories, docs (guide, release notes, changelog, PRD, announcement, site).
Tests: test_url_collections.py (16, no network) + 6 window tests; live-checked
against YouTube with a 3-video list, @jawed and @ted Shorts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Jeff Bishop and others added 3 commits September 28, 2026 14:30
…s none)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
shared-runtime.iss packs tools\deno only for an app that defines ToolDeno;
without it the installed Converter had yt-dlp and no JavaScript runtime for
YouTube.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…TE-EC)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@accesswatch
accesswatch merged commit dbee863 into main Sep 28, 2026
18 checks passed
@accesswatch
accesswatch deleted the feat/converter-playlists branch September 29, 2026 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant