{"title":"A PDF reader plugin for narration","slug":"pdf-reader-plugin-for-narration","url":"https://www.reboot.md/pdf-reader-plugin-for-narration","markdownUrl":"https://www.reboot.md/pdf-reader-plugin-for-narration.md","jsonUrl":"https://www.reboot.md/pdf-reader-plugin-for-narration.json","date":"2026-08-25","updated":"2026-08-25","status":"draft","type":"log","readTime":"5 min","tags":["ai-workflows","content-systems","product","experiments"],"projects":[],"summary":"A proposed PDF-to-narration pipeline for books, documents, and PRDs that need a useful listening version.","content":"## The job\n\nMany useful documents are difficult to consume in the format in which they arrive.\n\nA book may not have an audio edition. A PRD may be long enough that I want to review it while walking. A scanned document may contain valuable material but no usable text layer.\n\nThe PDF Reader plugin should turn those files into narration-ready material. The result can then move into ElevenLabs or another narration tool.\n\nThe goal is not to upload a PDF and hope that a voice model understands it. The goal is to produce a clean, reviewable script before narration begins.\n\n## The pipeline\n\n![PDF narration pipeline from extraction and OCR through editing and narrator handoff](/diagrams/pdf-reader-plugin-for-narration/pdf-to-narration.svg)\n\nThe pipeline has four decisions between the source file and the narrator:\n\n1. Extract the existing text, or use OCR when a page is scanned.\n2. Recover the reading order and document structure.\n3. Decide what the spoken version should keep, drop, or rewrite.\n4. Format a portable narration file and prepare the provider handoff.\n\nEach stage should leave an artifact that I can inspect. A bad extraction must not become an expensive audio file before anyone notices.\n\n## Text first, OCR when needed\n\nThe plugin should inspect each page before choosing an extraction method.\n\nIf the PDF has a reliable text layer, direct extraction is faster and usually more accurate. If a page is an image, the plugin should use optical character recognition, or OCR. Mixed PDFs may need both methods in the same document.\n\nOCR confidence matters. Uncertain words, broken paragraphs, and ambiguous reading order should be flagged for review instead of silently guessed.\n\nThe source page number should remain attached as metadata. I may remove page numbers from the spoken script, but I still need a path back to the original passage.\n\n## Decide what belongs in the spoken version\n\nA PDF contains more than its main text. It can include repeated headers, footers, page numbers, navigation, citations, tables, image captions, legal notices, and margin notes.\n\nThe plugin needs a keep-or-drop pass that understands the purpose of the output.\n\nFor a book, it may keep chapter titles and meaningful footnotes while dropping repeated furniture. For a PRD, it should keep requirements, decisions, risks, and open questions. It may move dense tables into a separate review section instead of reading every cell aloud.\n\nThis pass must produce a decision log. Dropped material remains in the original PDF and appears in the log with its source location. The plugin should never make irreversible edits to the source.\n\nThe default should preserve meaning, not summarize it. Summaries and rewrites are separate choices because they can change the author's intent.\n\n## Format for narration\n\nThe clean output should not depend on one voice provider.\n\nA neutral narration file can contain:\n\n- chapter and section boundaries\n- paragraph breaks and pause markers\n- pronunciation notes for names and technical terms\n- source references for review\n- warnings for unresolved OCR or layout problems\n\nAn adapter can then turn that file into the format required by ElevenLabs or another narrator. Provider settings, voices, and credentials stay outside the document-processing stage.\n\nThis separation makes the useful artifact portable. If the narrator changes, the expensive extraction and editing work does not need to happen again.\n\n## The review checkpoint\n\nBefore export, the plugin should show a short report:\n\n- pages processed through text extraction and OCR\n- sections kept, dropped, or moved\n- low-confidence passages\n- estimated chapter boundaries\n- narration files ready for export\n\nI should be able to preview the script, correct a name, restore a dropped section, and then approve the handoff.\n\nThat checkpoint is the product. Without it, the workflow is only a chain of automated guesses.\n\n## Why this is useful\n\nThe immediate use case is personal listening: books without an available audio edition, documents, research material, and PRDs that are easier to review away from a screen.\n\nThe same pipeline can support accessibility and internal knowledge workflows. A team could prepare a long strategy document for listening without manually cleaning every page.\n\nThe tool should only process material that the user has the right to access and convert. It should create a private working copy, not a new distribution channel.\n\nThe useful version of this plugin is small. It accepts a PDF, explains what it changed, and returns a narration-ready file that I trust enough to hear.","html":"<h2 id=\"the-job\">The job</h2>\n<p>Many useful documents are difficult to consume in the format in which they arrive.</p>\n<p>A book may not have an audio edition. A PRD may be long enough that I want to review it while walking. A scanned document may contain valuable material but no usable text layer.</p>\n<p>The PDF Reader plugin should turn those files into narration-ready material. The result can then move into ElevenLabs or another narration tool.</p>\n<p>The goal is not to upload a PDF and hope that a voice model understands it. The goal is to produce a clean, reviewable script before narration begins.</p>\n<h2 id=\"the-pipeline\">The pipeline</h2>\n<figure><img src=\"/diagrams/pdf-reader-plugin-for-narration/pdf-to-narration.svg\" alt=\"PDF narration pipeline from extraction and OCR through editing and narrator handoff\" loading=\"lazy\" /><figcaption>PDF narration pipeline from extraction and OCR through editing and narrator handoff</figcaption></figure>\n<p>The pipeline has four decisions between the source file and the narrator:</p>\n<p>1. Extract the existing text, or use OCR when a page is scanned. 2. Recover the reading order and document structure. 3. Decide what the spoken version should keep, drop, or rewrite. 4. Format a portable narration file and prepare the provider handoff.</p>\n<p>Each stage should leave an artifact that I can inspect. A bad extraction must not become an expensive audio file before anyone notices.</p>\n<h2 id=\"text-first-ocr-when-needed\">Text first, OCR when needed</h2>\n<p>The plugin should inspect each page before choosing an extraction method.</p>\n<p>If the PDF has a reliable text layer, direct extraction is faster and usually more accurate. If a page is an image, the plugin should use optical character recognition, or OCR. Mixed PDFs may need both methods in the same document.</p>\n<p>OCR confidence matters. Uncertain words, broken paragraphs, and ambiguous reading order should be flagged for review instead of silently guessed.</p>\n<p>The source page number should remain attached as metadata. I may remove page numbers from the spoken script, but I still need a path back to the original passage.</p>\n<h2 id=\"decide-what-belongs-in-the-spoken-version\">Decide what belongs in the spoken version</h2>\n<p>A PDF contains more than its main text. It can include repeated headers, footers, page numbers, navigation, citations, tables, image captions, legal notices, and margin notes.</p>\n<p>The plugin needs a keep-or-drop pass that understands the purpose of the output.</p>\n<p>For a book, it may keep chapter titles and meaningful footnotes while dropping repeated furniture. For a PRD, it should keep requirements, decisions, risks, and open questions. It may move dense tables into a separate review section instead of reading every cell aloud.</p>\n<p>This pass must produce a decision log. Dropped material remains in the original PDF and appears in the log with its source location. The plugin should never make irreversible edits to the source.</p>\n<p>The default should preserve meaning, not summarize it. Summaries and rewrites are separate choices because they can change the author's intent.</p>\n<h2 id=\"format-for-narration\">Format for narration</h2>\n<p>The clean output should not depend on one voice provider.</p>\n<p>A neutral narration file can contain:</p>\n<ul><li>chapter and section boundaries</li><li>paragraph breaks and pause markers</li><li>pronunciation notes for names and technical terms</li><li>source references for review</li><li>warnings for unresolved OCR or layout problems</li></ul>\n<p>An adapter can then turn that file into the format required by ElevenLabs or another narrator. Provider settings, voices, and credentials stay outside the document-processing stage.</p>\n<p>This separation makes the useful artifact portable. If the narrator changes, the expensive extraction and editing work does not need to happen again.</p>\n<h2 id=\"the-review-checkpoint\">The review checkpoint</h2>\n<p>Before export, the plugin should show a short report:</p>\n<ul><li>pages processed through text extraction and OCR</li><li>sections kept, dropped, or moved</li><li>low-confidence passages</li><li>estimated chapter boundaries</li><li>narration files ready for export</li></ul>\n<p>I should be able to preview the script, correct a name, restore a dropped section, and then approve the handoff.</p>\n<p>That checkpoint is the product. Without it, the workflow is only a chain of automated guesses.</p>\n<h2 id=\"why-this-is-useful\">Why this is useful</h2>\n<p>The immediate use case is personal listening: books without an available audio edition, documents, research material, and PRDs that are easier to review away from a screen.</p>\n<p>The same pipeline can support accessibility and internal knowledge workflows. A team could prepare a long strategy document for listening without manually cleaning every page.</p>\n<p>The tool should only process material that the user has the right to access and convert. It should create a private working copy, not a new distribution channel.</p>\n<p>The useful version of this plugin is small. It accepts a PDF, explains what it changed, and returns a narration-ready file that I trust enough to hear.</p>","headings":[{"id":"the-job","text":"The job","level":2},{"id":"the-pipeline","text":"The pipeline","level":2},{"id":"text-first-ocr-when-needed","text":"Text first, OCR when needed","level":2},{"id":"decide-what-belongs-in-the-spoken-version","text":"Decide what belongs in the spoken version","level":2},{"id":"format-for-narration","text":"Format for narration","level":2},{"id":"the-review-checkpoint","text":"The review checkpoint","level":2},{"id":"why-this-is-useful","text":"Why this is useful","level":2}],"source":{"origin":"direct product note","tools":["Codex"],"humanEdit":"Drafted from supplied intake; needs Diego review"}}