YouTube Transcript to PDF Generator
Pricing
from $6.30 / 1,000 transcript pdfs
YouTube Transcript to PDF Generator
Turn public YouTube videos with accessible captions into readable transcript PDFs. Get timed transcript passages, video details, and a PDF download link for each successful video.
Pricing
from $6.30 / 1,000 transcript pdfs
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
9 days ago
Last modified
Categories
Share
📄 Turn YouTube videos into readable PDFs
YouTube to PDF is for students, researchers, creators, and teams that need a video transcript they can read or share. Add public YouTube videos with captions to get a PDF and a structured dataset row for each successful video.
- Make a PDF with YouTube transcript to PDF for reading, study, or research.
- Use the YouTube video to PDF converter to save a video transcript as a document.
- Extract text from YouTube video and keep timed passages in JSON.
- Run the YouTube transcript generator for a public video with captions.
- Get a YouTube transcript with video details and a PDF download link.
📦 YouTube transcript PDFs and data
Each successful video creates one dataset row and one PDF in Apify storage. The row contains the full transcript as timed passages, the caption language used, video details when available, transcript size, and a PDF URL. If the same video appears more than once, the Actor saves its first result and skips later copies. One failed video does not stop the rest of the list.
The Actor uses accessible manual or auto-generated YouTube captions. It does not make new captions with speech-to-text, translate or summarize text, discover videos, or process private and login-only videos.
▶️ Create a YouTube transcript PDF
- Add one or more public YouTube URLs or video IDs.
- Choose a caption language and PDF layout.
- Choose whether to remove non-speech notes.
- Click Start.
- Open Video documents for the dataset rows and PDF links.
You can submit standard watch URLs, youtu.be links, embed URLs, Shorts URLs, or bare video IDs. The Actor uses the best available caption track if the requested language is not available.
📥 Input
| Field | Type | What it does |
|---|---|---|
videoReferences | string array | Adds one or more public YouTube video URLs or video IDs. Standard, short, embed, and Shorts URLs work. |
captionLanguage | string | Sets a preferred caption language code, such as en or es. The best available track is used if it is not available. |
transcriptLayout | string | Chooses clean paragraphs or a timestamp-focused PDF layout. |
removeAnnotations | boolean | Removes non-speech caption notes such as music, applause, and laughter markers. |
This is the public input from the successful default-input beta run:
{"videoReferences": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"captionLanguage": "en","transcriptLayout": "paragraphs","removeAnnotations": false}
📤 Output
Each successful video has this shape:
| Field | Type | What it does |
|---|---|---|
videoId | string | YouTube video ID. |
videoUrl | URL | Source YouTube video URL. |
title | string | Video title. |
channelName | string | Channel name, when available. |
description | string | Video description, when available. |
durationSeconds | number | Video length in seconds, when available. |
publishedAt | date-time | Video publish time, when available. |
thumbnailUrl | URL | Video thumbnail URL, when available. |
viewCount | integer | View count, when available. |
likeCount | integer | Like count, when available. |
commentCount | integer | Comment count, when available. |
requestedCaptionLanguage | string | Caption language code you requested. |
captionLanguage | string | Caption language code that was used. |
captionsAutoGenerated | boolean | Says whether YouTube made the captions automatically. |
transcriptCharacterCount | integer | Number of characters in the cleaned transcript. |
transcriptWordCount | integer | Number of words in the cleaned transcript. |
transcriptPassages | object array | Full transcript split into timed passages. |
transcriptPassages.startSeconds | number | Passage start time in seconds. |
transcriptPassages.durationSeconds | number | Passage length in seconds, when available. |
transcriptPassages.text | string | Caption text for the passage. |
pdfUrl | URL | Apify storage URL for the PDF. |
This shortened row comes from a successful current-beta run. It keeps the first four timed passages and the main metadata. The full description and remaining passages are omitted and shown as the JSON string "...".
{"videoId": "dQw4w9WgXcQ","videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","channelName": "Rick Astley","description": "...","durationSeconds": 213,"publishedAt": "2009-10-25T06:57:33.000Z","thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/sddefault.jpg","viewCount": 1818964393,"likeCount": 19405740,"commentCount": 2457512,"requestedCaptionLanguage": "en","captionLanguage": "en","captionsAutoGenerated": false,"transcriptPassages": [{"startSeconds": 1.36,"durationSeconds": 1.68,"text": "[♪♪♪]"},{"startSeconds": 18.64,"durationSeconds": 3.24,"text": "♪ We're no strangers to love ♪"},{"startSeconds": 22.64,"durationSeconds": 4.32,"text": "♪ You know the rules\nand so do I ♪"},{"startSeconds": 27.04,"durationSeconds": 4,"text": "♪ A full commitment's\nwhat I'm thinking of ♪"},"..."],"transcriptCharacterCount": 2089,"transcriptWordCount": 487,"pdfUrl": "https://api.apify.com/v2/key-value-stores/8yqD1pWgXjfI3IKe3/records/dQw4w9WgXcQ.pdf?signature=1P5izrXjUbj5755iCU0pY"}
The Video documents output opens the successful video rows and their PDF links.
💳 Pricing
This Actor uses pay-per-event pricing. You are charged for each video that is successfully turned into a downloadable transcript PDF. Failed videos do not trigger that event. Apify platform usage may also apply under your plan.
🔌 Integrations
Use the Apify API to start runs or read the Video documents dataset. Export the dataset as JSON, CSV, or Excel for your next workflow.
❓ FAQ
What happens when a video has no accessible captions?
That video fails, but the Actor keeps working on the rest of the list. It does not use speech-to-text to make new captions.
Can I use auto-generated YouTube captions?
Yes. The Actor can use manual or auto-generated captions and tells you which kind it used.
What if my chosen caption language is missing?
The Actor uses the best caption track it can access and reports the language it used.
Can it process playlists, channels, or keyword searches?
No. Add individual video URLs or IDs. Use a separate YouTube discovery Actor first if you need to find videos.
Does it translate or summarize transcripts?
No. It keeps the caption text as a transcript and makes a PDF plus structured results.
📝 Changelog
v0.0
- Initial release.
- Convert public YouTube captions into readable PDFs and structured transcript results, with language, layout, and annotation controls.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- YouTube Transcript API: Get caption text, timing, and transcript file links when you need more than a PDF.
- YouTube Subtitle Search Scraper: Find videos by words in public captions before you choose videos for PDF creation.
- TikTok Transcript Scraper: Extract timed transcripts from public TikTok videos for a similar short-form workflow.
- YouTube Description Extractor: Collect descriptions, links, and video details to enrich transcript research.
- YouTube Transcript Scraper: Get timestamped YouTube transcripts for transcript-focused workflows.
Made with ❤️ by Maxime Dupré