Repository navigation
Conversation
…ible' into docs/transcription-guide-update # Conflicts: # .claude/skills/verify/net.mjs
Deploying podnotes with
|
| Latest commit: |
a96df75
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://5799e1ab.podnotes.pages.dev |
| Branch Preview URL: | https://docs-transcription-guide.podnotes.pages.dev |
chhoumann
changed the base branch from
feat/transcription-speaker-merge
to
feat/transcription-openai-compatible
November 14, 2026 13:01
…rvers The OpenRouter table and FAQ quoted a lab word error rate and a price, and called Deepgram the pick for speed, none of which the code or a provider page backs. The server settings shots now show the guide's example address instead of the capture's random fixture port.
chhoumann
marked this pull request as ready for review
November 14, 2026 14:49
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rewrites and expands the PodNotes user documentation for 2.25.0 multi-provider transcription (ElevenLabs, Deepgram, OpenRouter, OpenAI, and OpenAI-compatible server), including:
text, about $0.03 per hour)./v1/audio/transcriptions), covering acceptedhttp://andhttps://Server address forms, optional OpenAI-compatible server API key, text Model ID, 24 MB upload parts, local-machine audio privacy, phonelocalhostvs LAN/VPN behavior, andverbose_jsontimestamp handling with HTTP 400 fallback tojson.Pages added
docs/src/content/docs/transcription-providers.md(/transcription-providers/): concise provider overview, step-by-step setup for ElevenLabs, Deepgram, OpenAI, OpenRouter (all five models), and OpenAI-compatible server, plus the Provider and model reference tables (OpenRouter models and API keys across devices and backups) at the end of the page.docs/src/content/docs/update-2-25.md(/update-2-25/): 2.25.0 transcription migration guide covering how existing 2.24.0 setups map totranscript.provider, OpenAI's move fromwhisper-1andgpt-4o-transcribe-diarizeto GPT Transcribe (gpt-transcribe, ahead of OpenAI's2027-02-26shutdown), how to keep speaker labels or connect an OpenAI-compatible server, and mixed-device behavior when syncing with 2.24.0 clients.Pages and site config updated
docs/src/site.mjs: adds Choose a transcription provider under Listen right after Transcribe episodes, and Update to 2.25.0 under Start here.docs/src/content/docs/transcripts.md: rewrites Transcribe episodes around published RSS transcripts, audio transcription (PodNotes: Transcribe current episode and PodNotes: Transcribe current episode from audio), the Transcript panel (Transcribe with <Provider> + Paid vs Transcribe with your server without Paid), clickable timestamps, speaker labels (model support, disabled-while-off Speaker labels row, OpenRouter Grok STT 2.0 MP3 voice matching vs per-part speaker resets, and18 MB / 30 min MP3vs12 MB / 15 min MP3OpenRouter part limits), and Limits (including offline command gating and24 MBserver upload parts).docs/src/content/docs/upgrade.md: links 2.24.0 upgraders directly to Update to 2.25.0 while keeping the 2.22.0 migration reference intact.docs/src/content/docs/settings.md: updates Timestamp template, Transcripts (Transcription provider, Server address, all five provider API key rows including optional OpenAI-compatible server API key, dropdown/text Model row, Speaker labels, Speaker label format, Transcript path, Transcript template), and Include API keys.docs/src/content/docs/faq.md: adds Which provider should I use?, Why does my transcript have no speaker labels?, and Why did my transcription fail? covering every preflight and HTTP failure notice fromTranscriptionService.tsandsrc/services/transcription/http.ts(including server address/model validation, server 401/403, server 404, HTTP 400formatrejection, and server connection notices).docs/src/content/docs/mobile.md: explains phone transcription behavior, direct URL fetch on ElevenLabs, Deepgram, and OpenRouter's ElevenLabs Scribe v2 vs on-device upload/splitting on the other models and OpenAI-compatible server, and reaching a computer's server via LAN/VPN IP instead oflocalhost.docs/src/content/docs/import_export.md,docs/src/content/docs/sync.md,docs/src/content/docs/player.md,docs/src/content/docs/templates.md,docs/src/content/docs/commands.md: aligns SecretStorage references (openAICompatibleSecretId/podnotes-openai-compatible-api-key),serverUrl/modelsync and export behavior, Transcript panel button labels, and template timestamp behavior across all five provider options.Screenshots added and regenerated
docs/public/screenshots/transcript-settings.webp(-dark,-phone,-phone-dark)docs/public/screenshots/openrouter-models.webp(-dark,-phone,-phone-dark) — regenerated to show all five OpenRouter models on desktop and the closed Model row on phonedocs/public/screenshots/openai-compatible-settings.webp(-dark,-phone,-phone-dark) — Transcripts group with OpenAI-compatible server, fixturehttp://localhost:<port>/v1Server address, unlinked OpenAI-compatible server API key,whisper-large-v3-turboModel, and disabled Speaker labelsdocs/public/screenshots/transcript-note.webp(-dark,-phone,-phone-dark)docs/scripts/screenshots.mjs,docs/screenshots/seed.mjs,.claude/skills/verify/net.mjs: extends automated screenshot capture for all five OpenRouter models and OpenAI-compatible server using.claude/skills/verify/fixtures.mjs serverandnet.mjs watch(including re-installingnet.mjs watchafterplace("phone")reloads the renderer).Verification
Commands run
fnm exec --using 22.23.2 npm cifnm exec --using 22.23.2 npm run buildfnm exec --using 22.23.2 npm run start:e2e-obsidianfnm exec --using 22.23.2 node docs/scripts/screenshots.mjs openrouter-models openrouter-models-phone openai-compatible-settings openai-compatible-settings-phonefnm exec --using 22.23.2 node .claude/skills/verify/fixtures.mjs stop && fnm exec --using 22.23.2 npm run stop:e2e-obsidianfnm exec --using 22.23.2 npm run docs:buildfnm exec --using 22.23.2 npm run lintfnm exec --using 22.23.2 npm run format:checkfnm exec --using 22.23.2 npm run typecheckfnm exec --using 22.23.2 npm run test:toolingReview rounds
docs/STYLE.md): Audited every new and modified page line by line againstdocs/STYLE.md. Verified one job per page, verb-first task headings and noun-phrase concept headings, no-ingheadings, no skipped heading levels, single-sentencedescription:frontmatter,<150-character alt text with noNN:NNtimes, zero semicolons (;), zero em dashes (—), zero banned words (simply,just,easy,powerful,seamless,utilize), exact bold UI labels, and single-action numbered steps naming the place before the action. Consolidated cloud key setup boilerplate and moved lookup tables under Provider and model reference at the end of/transcription-providers/to stay withinSTYLE.md's screen-length guidance while preserving all heading fragment IDs.src/): Traced every behavioral claim, UI label, placeholder, validation string, limit, and quoted notice tosrc/services/transcription/{registry,transcribe,http,audioSource,speakers,cues,split}.ts,src/services/transcription/providers/{elevenlabs,deepgram,openrouter,openai,openaiCompatible,verboseJson}.ts,src/utility/assertFetchableUrl.ts,src/services/TranscriptionService.ts,src/ui/settings/PodNotesSettingsTab.ts,src/ui/PodcastView/TranscriptPanel.svelte,src/settingsMigrations.ts,src/settingsTransfer.ts,src/persistence/settingsCodec.ts, andsrc/types/Credentials.ts. Verified exactSLOW_PART_CAPS(12 MB/15 minMP3) on Voxtral Mini Transcribe 3 and Qwen3 ASR 1.7B,24 MBupload cap on OpenAI-compatible server, HTTP 400response_format/verbose_json/timestamp_granularitiesretry tojson(openaiCompatible.ts:50-54,transcribe.ts:66-68), Transcribe with your server button text without Paid (TranscriptPanel.svelte:71-73, 191-192), and offline command gating even with a local server. (Note for PR feat(transcription): transcribe with any OpenAI-compatible server #546: Obsidian 1.14.4 logs a console warningPodNotes: duplicate setting key "name:Model"when opening the PodNotes settings tab becausePodNotesSettingsTab.ts:377-384defines both dropdown and textModelrows withname: "Model".)390 px&1440 px, light & dark): Serveddocs/dist/locally and inspected all 8 touched pages in headless Chrome at390×844and1440×900in light and dark themes. Verified zero horizontal overflow (scrollWidth === innerWidthacross all 32 route/viewport/theme combinations), responsive-phoneand-dark<picture>source switching, legible closed-dropdown phone crops, and clean mobile card stacking for both Provider and model reference and OpenRouter models tables.Release impact
None (documentation and screenshot tooling only; targets
feat/transcription-openai-compatibleas a draft PR for the 2.25.0 release).Note
Rewrite transcript docs for provider choice, API keys, and model setup
--turnsoption in net.mjs for the network watcher.transcripts.mdare preserved only as aliases; check that external links to moved setup, cost, and key-storage sections still resolve.Macroscope summarized a96df75.
Note
Low Risk
Documentation and e2e/screenshot tooling only; no production transcription or plugin runtime logic changes.
Overview
Documents PodNotes 2.25.0 transcription across ElevenLabs, Deepgram, OpenRouter, OpenAI, and OpenAI-compatible server, replacing the older OpenAI/Deepgram-only docs.
Adds
transcription-providers.md(setup steps, model comparison, device/backup key behavior) andupdate-2-25.md(settings migration from 2.24.0, GPT Transcribe, mixed-device sync).transcripts.mdand related guides (settings, FAQ, player, mobile, sync, import/export, commands, templates) are rewritten for provider choice, timestamps, speaker labels, server address/model preflight, and transcription failure notices.site.mjslinks the new pages in the sidebar.Screenshot automation grows to support selective runs (
[shot ...]), Transcripts settings captures (including native Model dropdown via OS window grab), fixture-backed transcript notes fromseed.json, andnet.mjs watch --turnsso mocked API responses match the multi-turn demo dialogue.Reviewed by Cursor Bugbot for commit a96df75. Bugbot is set up for automated code reviews on this repo. Configure here.