

# How to Build a Verified Book List From YouTube Videos

To extract book recommendations from YouTube videos, use captions to find possible book names. Then listen to each passage. Check the title, author, and whether the speaker recommends the book. Match the checked details to a publisher or library record. Keep uncertain titles and editions unresolved. For a few videos, you can do this by hand. For a larger selected collection, a caption tool can help collect the source text.

A book mention does not prove a recommendation. A correct title match does not prove which edition the speaker meant. Your final bibliography, or book list with source records, must keep these checks separate.

## Start with the videos and the recommendation rule

A reader asked for a prompt that extracts book recommendations from every video on a YouTube channel. This raises two separate questions: Did you collect every intended video? Did you check what each speaker said about each book? A prompt alone cannot establish either result. The supplied question shows one reader problem. It does not show how many people need the same service. [Reader question, published January 30, 2025; one observed question only](https://www.reddit.com/r/ChatGPT/comments/1idcphk).

Start with a written collection rule. For example, choose a named set of interviews or a defined date range. Record how you obtained the video list. A limited search does not prove that you found every historical upload on a channel.

Next, define what you will count as a recommendation. Use a clear rule, such as: the speaker advises someone to read or use the book. Keep any stated audience or purpose. A book recommended for experienced readers may be unsuitable for beginners.

Use separate labels for recommends, mentions, criticizes, quotes, and unclear. A speaker who quotes a book has not necessarily advised anyone to read it. If a speaker gives mixed advice, keep the conditions beside the label.

For help defining and checking the video collection, use the [transcript collection guide](/en/articles/youtube-transcript-corpus/). This article starts from that selected collection and checks the books within it.

## Choose manual review or caption collection

For a short list of videos, open each video and inspect its captions, if available. Listen to possible book passages. Look at a visible cover or title when it can help identify the book. Save the source time as you work.

For more videos, the [YouTube Transcript Scraper, public contract checked October 25, 2026; no runtime test](https://apify.com/chronometrica/youtube-transcript-scraper) can collect existing public caption tracks. An Actor is a hosted data collection program. This Actor accepts direct video URLs or video IDs. A video ID is the identifier for one video.

The Actor does not accept channel, playlist, or search input. It does not create new text from speech or download audio or video. You must supply the selected videos. You must also do the listening and book checks.

A Task is a saved input preset. The [batch transcript Task, public presence checked October 25, 2026; saved input and execution not tested](https://apify.com/chronometrica/youtube-transcript-scraper/examples/batch-youtube-transcript-extraction) provides a documented starting point for caption collection. Its public page and Task ID were present in the supplied evidence. This establishes preset presence only. It does not establish a successful run or a finished book list.

The method below describes actions for you to perform. No Actor run or model run occurred for this guide.

## Follow these eight steps

### 1. Save the selected video list

Give each selected video one inventory entry. An inventory is the list of sources you intend to check. Save its video ID, URL, selection reason, and discovery source. Also save whether caption collection is pending, successful, or failed.

Keep excluded videos separate from selected videos. A video you did not attempt is not a caption failure. A failed caption input is not evidence that the video contains no books.

If your aim is a complete channel list, first establish a video inventory that supports that scope. Until then, describe the result as books found in the selected videos.

### 2. Collect a small batch of timed captions

Use the supplied input below as a starting example. JSON is a text format that stores field names and values.

```json
{"includeFailedInputDetails":true,"outputFormats":["json"],"preferredLanguages":[],"startUrls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]}
```

Follow these eight steps

Replace the sample URL with an intended public video URL before you run it. The sample is a schema example. It is not evidence of a useful book passage.

The four fields have these purposes:

- `startUrls` holds the direct video URLs or IDs. The documented input accepts 1–1,000 entries. Repeated video IDs are processed once.
- `outputFormats` requests the result format. Keep `json` to retain timed segments.
- `preferredLanguages` lists preferred caption languages in order. An empty list uses an available track. It does not require English.
- `includeFailedInputDetails` requests input failure details in the run `OUTPUT` record.

If you set language preferences and none are available, the Actor reports a language-unavailable failure. It does not supply a translation instead.

Each successful unique video produces a dataset row. A dataset row is one stored result. Inspect `OUTPUT` for failed inputs, including inputs that produced no successful row. These behaviors come from the [Actor contract, checked October 25, 2026; public schema and documentation only](https://apify.com/chronometrica/youtube-transcript-scraper).

### 3. Find possible titles and save each passage

A cue is one timed piece of caption text. Read the available cues for possible book titles, author names, and nearby advice about reading. Do not search only for the word “recommend.” The advice may use other wording.

For every possible book, save the raw caption text and its video ID. Also save the cue fields `startSeconds` and `endSeconds`. These values locate the cue from the start of the video.

Keep nearby cues when they contain an author, a condition, or a later correction. Do not join separate passages into one continuous statement.

A language model may help mark candidates in the supplied text. A candidate is a possible match that still needs checking. Require source passages for its suggestions. Reject titles that have no source passage. A model must not fill a missing author or title from its own knowledge.

### 4. Listen and record the speaker’s position

Open each candidate passage. Listen before and after it. Check the spoken title and author. Inspect any visible cover or title that helps resolve the name.

Record who gives the advice when the source establishes that identity. In an interview, the host may read a title while the guest gives the opinion. Do not assign both actions to one person without evidence.

Choose the recommendation label from the complete passage:

| Label | What to record |
| --- | --- |
| Recommends | The advice and its stated audience or purpose |
| Mentions | The reference without evidence of a recommendation |
| Criticizes | The objection and its scope |
| Quotes | The quoted material and who introduces it |
| Unclear | The words or context that still need checking |

Keep a condition such as “for advanced readers” beside the recommendation. Keep a negative statement such as “not for beginners” beside the criticism. Do not replace either with an unqualified positive label.

If you need to publish exact wording, follow the [quotation checking guide](/en/articles/youtube-quote-ledger/). This book-list method needs the checked meaning and source passage. It does not require a long quotation.

### 5. Match the title and author to a catalog record

Search the publisher’s own catalog or a documented library catalog. A catalog record describes a published work or edition. Search with the checked title and author together when both are known.

Compare the author, subtitle, language, and work identity. Similar title words are not enough. Save the record URL and a short note that explains the match. If several records remain possible, retain the alternatives and state what evidence would distinguish them.

Open Library documents title and author searches with work-level results and book details. Its search schema, or structure of returned fields, may change. Do not assume that a general search result identifies the edition shown in a video. [Open Library Search API, checked October 25, 2026; schema stability is not guaranteed](https://openlibrary.org/dev/docs/api/search?v=9).

If the source gives “Field Notes” without an author, a plausible catalog result is still only a candidate. Do not select the first result merely to complete the table.

### 6. Keep the work separate from its edition

A work is the book as a general creation. An edition is a particular published version of that work. You may identify the work while the edition remains unknown.

An ISBN is an International Standard Book Number used to identify a particular edition. Add it only when the video and catalog evidence establish that edition. A general title match does not justify copying an ISBN from a nearby record.

Use separate values for work identity, edition identity, and ISBN. For example, you may have a checked title and author but no evidence of the edition. In that case, retain the work match and leave edition and ISBN unknown.

Unknown does not mean zero. Do not write zero in a missing ISBN field. In structured data, `null` can mark an absent value. In a reader-facing table, write “Unknown” and explain the missing evidence.

### 7. Save book records and passage records separately

Use one table for resolved works. Use another for every source occurrence. An occurrence is one passage where a book is discussed.

Several passages about one work remain several evidence records. They do not become several books. They also do not become several independent recommendations if they repeat the same advice.

Use a local record key to connect the tables. This key is your own reference label. It is not an ISBN or an Actor output field. Keep unresolved candidates in a separate list until you can establish their identity.

The tables below show the fields to save. You create the catalog matches and recommendation labels through review. The caption Actor does not supply those judgments.

### 8. Check the final list against every retained passage

For each retained recommendation, reopen the source passage. Compare the final title, author, speaker, label, and audience condition with the source. Then reopen the catalog record and check the work and edition decisions.

Also inspect the unresolved and excluded entries. Confirm that a missing author did not become a guessed author. Confirm that criticism did not become a recommendation. Confirm that unavailable captions did not become a “no books” result.

Export the checked works, their passage records, and unresolved candidates. State the selected collection and its caption failures beside the result. The next reader must be able to see both what you found and what remains unchecked.

## Save these table fields

Keep these fields in the work table:

| Field | Purpose |
| --- | --- |
| Local work key | Connects the work to its passage records |
| Checked title and author | States the resolved work identity |
| Subtitle and language | Helps distinguish similar records |
| Catalog URL | Lets a reader inspect the match |
| Match evidence | Explains why the record fits |
| Edition | States the checked edition or “Unknown” |
| ISBN | Holds only an established edition identifier |
| Open question | States any remaining identity limit |

Keep these fields in the occurrence table:

| Field | Purpose |
| --- | --- |
| Local occurrence key | Identifies this passage record |
| Work key or unresolved candidate | Links the passage without forcing a match |
| Video ID and URL | Identifies the source video |
| Passage start and end, in seconds | Locates the evidence |
| Raw cue text | Preserves the collected wording |
| Checked title and author | Records what the source establishes |
| Speaker and identity evidence | Shows who gives the advice |
| Recommendation label and condition | Preserves the speaker’s position |
| Listening and visual notes | Records corrections and cover evidence |
| Review state and date | Shows what was checked and when |

Retain the original caption row separately. Useful source fields include `transcriptLanguageCode`, `isAutoGenerated`, `status`, and `scrapedAt`. The collection time is not the passage time. Caption language, automatic-track status, and video coverage do not prove word accuracy.

## Worked example: original fiction

Everything in this example is original fiction. The video labels, times, passages, and collection results are invented. “The River Atlas” and “Field Notes” are fictional titles. No real ISBN or endorsement is implied.

Suppose you select three videos. Caption collection succeeds for two videos and fails for one. The collection arithmetic is:

3 selected videos = 2 videos with collected captions + 1 video with a caption failure.

This counts videos. It does not count books, speakers, or recommendations. The failed video remains unchecked for books.

The available captions contain three candidate occurrences:

| Fictional video | Passage | Candidate | Checked context |
| --- | --- | --- | --- |
| A | 60–66 seconds | The River Atlas | The speaker mentions the book |
| A | 100–108 seconds | The River Atlas | The speaker says not to use it as a beginner text |
| B | 30–35 seconds | Field Notes | The speaker gives no author |

The cue lengths are 66 − 60 = 6 seconds, 108 − 100 = 8 seconds, and 35 − 30 = 5 seconds. Their total is 6 + 8 + 5 = 19 seconds. This is the total length of these three separate cues. It is not one continuous passage or the full listening time.

After listening, retain both occurrences of “The River Atlas.” The later passage changes what a beginner reading list can claim. The evidence supports a mention and a criticism of beginner use. It does not establish a positive recommendation for another audience.

“Field Notes” stays unresolved because no author or distinguishing evidence is supplied. Do not invent an author or choose a catalog record from title words alone.

No catalog record is supplied for either fictional title. Therefore, the example has three occurrence records and two distinct title candidates, but zero resolved catalog matches. Edition and ISBN are unknown for both candidates.

Zero resolved matches is a checked count within this fiction. An unknown ISBN is missing information. These values mean different things.

The final beginner recommendation list is empty. Keep both candidates in the review notes. The next decision is to seek better source and catalog evidence, or retain the uncertainty. Do not force a positive recommendation to make the list look complete.

## Handle failures and state the limits

Use separate states for separate problems:

| Problem | Required action |
| --- | --- |
| Caption input fails | Inspect run `OUTPUT` and retain the failed video in the inventory |
| Requested language is unavailable | Record the failure; do not claim a translation was returned |
| Audio leaves the title unclear | Keep the title unresolved |
| Speaker identity is unclear | Leave the speaker unknown |
| Several catalog records fit | Keep the alternatives and the missing evidence |
| Work is matched but edition is not | Retain the work; leave edition and ISBN unknown |
| Book is mentioned without advice | Keep a mention label; exclude it from confirmed recommendations |
| Advice has an audience condition | Preserve the condition in the final list |

Public video pages, the Actor page, the public Task page, and public catalog records are public sources. Saved account input and run records require access to the account that holds them. A public preset page does not prove what an account saved or ran. If you perform a run, record its actual result separately from this proposed method.

State your collection limit in plain language. Report selected video counts, successful caption counts, and failed or pending counts separately. Do not describe these counts as a measure of title accuracy or complete channel coverage.

## Build the first checked entry

Choose one intended video. Find one possible book passage and listen to its full context. Save the title candidate, speaker’s position, passage times, and any audience condition. Search for a matching publisher or library record. Leave the edition and ISBN unknown unless the evidence establishes them.

If caption collection will help, open the [YouTube Transcript Actor](https://apify.com/chronometrica/youtube-transcript-scraper). Replace the sample URL, keep timed JSON, and inspect both successful rows and failed-input details. Continue to more videos after you can trace one completed entry from source passage to catalog record.

## Sources

- [YouTube Transcript Scraper — checked October 25, 2026; public build 0.1.43 schema and documentation, no runtime test](https://apify.com/chronometrica/youtube-transcript-scraper)
- [Batch transcript Task — checked October 25, 2026; public page and Task ID present, saved input and execution not tested](https://apify.com/chronometrica/youtube-transcript-scraper/examples/batch-youtube-transcript-extraction)
- [Open Library Search API — checked October 25, 2026; title and author search documentation, schema may change](https://openlibrary.org/dev/docs/api/search?v=9)
- [Public reader question — published January 30, 2025, observed October 25, 2026; one question, no demand-volume evidence](https://www.reddit.com/r/ChatGPT/comments/1idcphk)