Reel Knowledge Distiller: Videos to Claims
Pricing
Pay per event
Reel Knowledge Distiller: Videos to Claims
Turn public short videos into transcripts, typed claims, and Markdown notes for research and content teams.
Pricing
Pay per event
Rating
0.0
(0)
Developer
jay casey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Reel Knowledge Distiller
Turn public short videos into transcripts, typed claims, and Markdown notes for research and content teams.
What can Reel Knowledge Distiller do?
Add public YouTube, TikTok, or Instagram video links. The Actor fetches each video, transcribes its speech, sorts its claims into your categories, and saves both dataset rows and Markdown pages.
| What you get | Features |
|---|---|
| ๐ A transcript and typed claims for each video | ๐ฌ Direct video and profile input for supported public sources |
| ๐ Category pages and an index in Markdown | ๐ Local Whisper transcription by default |
Who this is for
- Build a source set from short videos
- Track claims made by creators or competitors
- Sort video research into topic pages
What you get back
| Field | Type | What you get | Example |
|---|---|---|---|
shortcode | string | Short identifier taken from the source video URL. | fwBIZRq-vzY |
url | string | Public video page analyzed by the Actor. | https://www.youtube.com/watch?v=fwBIZRq-vzY |
author | string | Creator handle reported for the video. | @Fireship |
author_name | string | Creator name when the source provides one. | Fireship |
posted | string | Date the video was published when available. | 2024-09-21 |
status | string | Whether this item completed its requested analysis. | distilled |
title | string | Title reported for the source item. | Linux command tricks for faster coding workflows |
theme | string | Main subject assigned to the video. | linux productivity |
categories | array | Knowledge categories assigned to the result. | ["ai-production"] |
claims | array | Structured claims extracted from the transcript. | [{"type":"technique","signal":"actionable","status":"definitive","text":"Use mkdir { } to create a directory and immediately cd into it, then cd - to return... |
tools_mentioned | array | Products or tools named in the source. | ["Atom One Dark","vscode-icons","Fira Code"] |
why_it_matters | string | Why the extracted material may matter to the selected audience. | These Linux shortcuts streamline directory navigation, bulk file creation, log monitoring, and command reuse , directly boosting developer efficiency. |
org_relevance | string | How the result relates to the chosen perspective. | The techniques illustrate practical automation patterns relevant to AI production workflows that the research team can benchmark or integrate into tooling. |
importance_signal | string | Signal used to judge why the source may be useful. | The creator highlights overlooked command-line efficiencies, signaling that practitioners value quick, tangible productivity gains. |
quality | integer | Quality score assigned to the distilled result. | 5 |
transcript | string | Full speech-to-text transcript. | This cooking trick recently changed my life. If you just drop an egg to crack it, instead of tapping it while holding it, you'll never get shells in the resu... |
transcript_source | string | Method used to obtain the transcript. | local-whisper |
transcript_chars | integer | Character count of the transcript. | 976 |
caption | string | Source caption or post text when available. | Here are five Linux command tricks that will change your life if you're a programmer. mkdir { } cd - touch {1..100} tail -f history ๐จ My Editor Settings - At... |
error | null | Problem details when this item does not complete. | null |
error_stage | null | Processing step that failed, if any. | null |
model | string | Model used for the analysis. | nvidia.nemotron-nano-3-30b |
distilled_at | string | Time the distilled result was created. | 2026-09-11T17:11:28Z |
The run also links to its dataset and any files named in the Actor output.
What you need to provide
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
reelUrls | array | No | Public short-video links we fetch ourselves with yt-dlp , Instagram reels/posts (share โ copy link), TikTok videos, YouTube Shorts. No third-party scrapers, no login. Note: Instagram currently serves media only intermittently to non-logged-in clients; failures are reported per row as error_stage: fetch, never faked. | ["https://www.youtube.com/shorts/fwBIZRq-vzY"] |
reelUrlsFile | string | No | Public URL of a JSON, CSV or text file containing reel/post links (for example an export from your own tooling). Every Instagram/TikTok/YouTube link found in it is added to reelUrls. | `` |
profiles | array | No | Public YouTube channel URLs (e.g. https://www.youtube.com/@Fireship โ its Shorts tab) or TikTok profile URLs (https://www.tiktok.com/@handle). Up to resultsLimit latest videos are listed and processed. Instagram handles are DEPRECATED and skipped with a warning: listing an Instagram profile needs a login, and this Actor never calls third-party scrapers , paste the reel links into reelUrls instead. | `` |
resultsLimit | integer | No | Cap on how many URLs are processed in one run (1-500). Remaining URLs can be run later; already-processed shortcodes are skipped when you reuse the dataset. | 30 |
perspective | string | No | Free text used in the prompt for org_relevance, e.g. "an AI infra startup's GTM team" or "a solo indie-hacker building a SaaS". | a research team tracking practitioner knowledge |
categories | array | No | Knowledge categories the LLM assigns (1-3 per reel, primary first). Each item: {"id": "gtm-sales", "description": "..."}. Leave empty for the built-in default set (ai-production, ai-architecture, model-research, market-state, gtm-sales, marketing-content, product-design, founder-ops, psychology-research, other). An other category is always appended. | `` |
llm | object | No | Distillation model. Default (when left blank): the Actor's own inexpensive Bedrock model (nvidia.nemotron-nano-3-30b) , no key needed. Override with any /v1/chat/completions server (provider openai | openai-compatible, baseUrl, model, apiKey stored encrypted). |
transcription | object | No | mode: local (default , faster-whisper runs inside the Actor on CPU, no key; optional model: tiny | base |
minTranscriptChars | integer | No | Transcripts shorter than this are treated as no speech (music/text-overlay reels) and are NOT sent to the LLM. | 80 |
Quick start
- Open the Actor in Apify Console.
- Click Try for free or Create a task.
- Replace the sample values with your own input.
- Click Start.
- Open the dataset and the named output files when the run ends.
Pricing
reel-distilled: $0.01 per reel distilled.reel-transcribed: $0.006 per reel transcribed.- Failed or skipped work is not charged unless an event is listed in the run charges.
- Normal Apify compute and proxy costs may also apply.
Limits and honest notes
- Public platforms can block or rate limit downloads. Each blocked item gets an error row.
- Instagram profile listing needs a login, so the Actor skips Instagram handles. Paste public reel links instead.
- Videos with transcripts shorter than
minTranscriptCharsreturnno_speechand are not sent to the LLM.
Code and API
The examples below use the same values as the Apify Console sample.
Input JSON
{"reelUrls": ["https://www.youtube.com/shorts/fwBIZRq-vzY"],"resultsLimit": 30,"perspective": "a research team tracking practitioner knowledge","llm": {"provider": "openai-compatible","model": "nvidia.nemotron-nano-3-30b","baseUrl": "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1","apiKey": ""},"transcription": {"mode": "local"},"minTranscriptChars": 80}
Real output sample
This excerpt comes from the real run named in the current marketplace release report.
{"shortcode": "fwBIZRq-vzY","url": "https://www.youtube.com/watch?v=fwBIZRq-vzY","author": "@Fireship","author_name": "Fireship","posted": "2024-09-21","status": "distilled","title": "Linux command tricks for faster coding workflows","theme": "linux productivity","categories": ["ai-production"],"claims": [{"type": "technique","signal": "actionable","status": "definitive","text": "Use mkdir { } to create a directory and immediately cd into it, then cd - to return to the previous directory."},{"type": "technique","signal": "actionable","status": "definitive","text": "Create multiple files with touch {1..100} to generate 100 sequentially numbered empty files in one command."},{"type": "technique","signal": "actionable","status": "definitive","text": "Use tail -f to continuously monitor and display new lines appended to a log file in real time."},{"type": "technique","signal": "actionable","status": "definitive","text": "Leverage history to quickly recall and re-execute the last five commands without retyping them."},{"type": "tool","signal": "actionable","status": "definitive","text": "Use brace expansion in mkdir, cd, and touch commands to simplify path manipulation and file creation."}],"tools_mentioned": ["mkdir","cd","touch","tail","history"],"why_it_matters": "These Linux shortcuts streamline directory navigation and file management, directly boosting developer productivity.","quality": 5,"transcript_source": "local-whisper","transcript_chars": 976}
curl
curl -X POST "https://api.apify.com/v2/acts/physealabs~reel-knowledge-distiller/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d @input.json
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("physealabs/reel-knowledge-distiller").call(run_input={'reelUrls': ['https://www.youtube.com/shorts/fwBIZRq-vzY'], 'resultsLimit': 30, 'perspective': 'a research team tracking practitioner knowledge', 'llm': {'provider': 'openai-compatible', 'model': 'nvidia.nemotron-nano-3-30b', 'baseUrl': 'https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1', 'apiKey': ''}, 'transcription': {'mode': 'local'}, 'minTranscriptChars': 80})items = client.dataset(run["defaultDatasetId"]).list_items().items
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('physealabs/reel-knowledge-distiller').call({"reelUrls": ["https://www.youtube.com/shorts/fwBIZRq-vzY"], "resultsLimit": 30, "perspective": "a research team tracking practitioner knowledge", "llm": {"provider": "openai-compatible", "model": "nvidia.nemotron-nano-3-30b", "baseUrl": "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1", "apiKey": ""}, "transcription": {"mode": "local"}, "minTranscriptChars": 80});const { items } = await client.dataset(run.defaultDatasetId).listItems();
You can call this Actor from an agent or LLM tool that can send HTTP requests to the Apify API. Keep the Apify token in a secret store.
FAQ
Does it open private posts?
No. It works with public links and does not log in to social platforms.
Can it process profiles?
It can list recent videos from public YouTube and TikTok profiles. Instagram profiles are skipped.
Can I use my own model?
Yes. Set the llm object with a compatible endpoint, model, and API key.


