On this page
If you write about talks, interviews or podcasts, the slow part is finding what to quote. The summary preset does the first pass: a short summary, the key points, the most quotable lines and the people in it, with a link to the moment behind every quote.
You still choose what goes in. You just don't scrub through the video to find it.
Run it #
Paste a link into the playground and choose summary, or call the API:
# pip install cleanscript-ai
from cleanscript_ai import CleanScript
client = CleanScript()
result = client.extract("https://www.youtube.com/watch?v=UF8uR6Z6KLc", preset="summary")result.data has summary, key_points, quotes and people. For Steve Jobs' 2005 Stanford Commencement Address, the summary begins:
In his Stanford commencement address, Steve Jobs recounts three stories from his life: dropping out of college and later seeing how calligraphy influenced the Macintosh, being fired from Apple and finding renewed creative purpose, and confronting a cancer diagnosis that led him to reflect on mortality.
The quotes:
"quotes": [
"Again, you can't connect the dots looking forward; you can only connect them looking backwards.",
"Your time is limited, so don't waste it living someone else's life.",
"Stay Hungry. Stay Foolish."
]And the citation for the second:
"quotes[1]": [{
"quote": "Your time is limited, so don't waste it living someone else's life.",
"source": "speech",
"start": 752.15,
"end": 757.29,
"url": "https://youtu.be/UF8uR6Z6KLc?t=752"
}]The link opens the video at 12:32.
Draft the section #
This prints a newsletter section with the summary, three key points and the quotes with timestamp links:
def stamp(seconds):
m, s = divmod(int(seconds), 60)
return f"{m}:{s:02}"
post, data = result.post, result.data
lines = [f"## {post.title}", f"By {post.author.name}", "", data["summary"] or "", "", "**Key points**", ""]
lines += [f"- {point}" for point in data["key_points"][:3]]
lines += ["", "**Worth quoting**", ""]
for i in range(len(data["quotes"])):
cite = result.citations[f"quotes[{i}]"][0]
lines.append(f"> {cite.quote}\n> [{stamp(cite.start)}]({cite.url})\n")
print("\n".join(lines))The last two quotes come out as:
> Your time is limited, so don't waste it living someone else's life.
> [12:32](https://youtu.be/UF8uR6Z6KLc?t=752)
> Stay Hungry. Stay Foolish.
> [14:28](https://youtu.be/UF8uR6Z6KLc?t=868)Before you send #
- Quote only the citations. Each
citations["quotes[i]"]quote is the speaker's words, checked against the post. The summary and key points are paraphrase, so keep them out of quotation marks. - Check the summary against the video. It's a fair first draft, in the model's words. Your take should be in yours.
- Click the links for anything you quote.
- Credit the creator and link the video:
posthas the author and URL.
Your own format #
If your newsletter has fixed parts, such as "the one idea", "the number to remember" and "what to try", describe them as fields in your own schema. See extract fields from a video.
For another language, pass language: values are written in it, and quotes stay in the words that were spoken.
Spot something wrong? Tell us.