Menu
NEW AGENT
MY AGENTS
ASSISTANTS
YouTube MP4 Downloader
- Step 4
Summary - 14th Jan
Summary - 13th Jan
Summary - 12th Jan
Summary - 10th Jan
Summary - 7th Jan
Summary - 7th Jan
Summary - 4th Jan
Summary - 3rd Jan
Summary - 2nd Jan
SETTINGS
LOGOUT
YouTube MP4 Downloader - Confirm & Copy Final Agent Code
1
Describe
Describe your task
2
Refine
Refine the plan
3
SubAgents
Review all agents
4
Deploy
Deploy your agent
Review Final Agent Copy
Expand
[ { "taskID": 223, "semanticTitleOfTask": "LLM - Parse and classify raw YouTube input", "taskDescription": "Uses a language-model prompt to scan the user’s free-form text, detect every YouTube hyperlink, classify each as a direct video URL or a playlist URL, discard malformed links, and output a JSON object with two keys: \"videos\" and \"playlists\".", "inputDescription": "VARIABLE1 is a single text block supplied by the user that may contain individual video links, playlist links, comma-separated values, or newline-separated lists.", "inputRequired": ["VARIABLE1"], "outputDescription": "A JSON object called parsed_list containing exactly two arrays: videos[] (direct video URLs) and playlists[] (playlist URLs), all fully-qualified and in original encounter order.", "outputName": "parsed_list", "promptInstruction": "Analyze the provided text input and extract all YouTube URLs. Identify and separate direct video URLs from playlist URLs. Return a valid JSON object with two arrays exactly named \"videos\" and \"playlists\". Preserve the order of appearance, ensure every URL starts with https://, and omit any invalid or duplicate URLs within each array. Output only the JSON object and nothing else." }, { "taskID": 224, "semanticTitleOfTask": "LLM - Expand playlist URLs into video links", "taskDescription": "For every playlist URL discovered in parsed_list, queries an oracle service to fetch the first fifteen constituent video URLs, preserving their original order.", "inputDescription": "Takes parsed_list (output of the previous task) and processes each element of parsed_list.playlists.", "inputRequired": ["parsed_list"], "outputDescription": "expanded_playlist_videos – a single JSON object whose keys are playlist URLs and whose values are arrays (max 15) of fully-qualified direct video URLs in order of appearance.", "outputName": "expanded_playlist_videos", "promptInstruction": "For each supplied YouTube playlist URL return the first 15 complete video URLs that belong to the playlist in their original order. Output a single JSON object whose keys are the playlist URLs and whose values are arrays of the extracted video URLs. Provide no additional commentary." }, { "taskID": 225, "semanticTitleOfTask": "LLM - Consolidate, de-duplicate and cap to five URLs", "taskDescription": "Combines all direct video links from parsed_list with those extracted from expanded_playlist_videos, removes duplicates while keeping first-seen order, and limits the final list to the first five unique URLs.", "inputDescription": "Receives parsed_list (containing videos[]) and expanded_playlist_videos (playlist expansions) and merges them.", "inputRequired": ["parsed_list", "expanded_playlist_videos"], "outputDescription": "final_url_array – a pure JSON array (no keys) containing between 1 and 5 unique, fully-qualified YouTube video URLs.", "outputName": "final_url_array", "promptInstruction": "Merge all supplied video URLs into one list. Remove duplicates while preserving their earliest occurrence. Keep only the first five unique URLs. Return the result as a pure JSON array (no keys, no text) containing fully-qualified https:// YouTube links." }, { "taskID": 185, "semanticTitleOfTask": "File system - write urls.json to disk", "taskDescription": "Writes the consolidated JSON array of up to five video URLs to a UTF-8 encoded file named urls.json in the current working directory so it can be consumed by downstream agents.", "inputDescription": "Takes final_url_array produced by Task 225.", "inputRequired": ["final_url_array"], "outputDescription": "urls_json – the absolute file path of the newly written urls.json containing the final_url_array.", "outputName": "urls_json", "promptInstruction": "no instruction" }, { "taskID": 1, "semanticTitleOfTask": "Check for existing destination folder record", "taskDescription": "Looks for a file called dest_folder.txt in the working directory. If it exists, reads the single line inside to obtain a previously-saved absolute download folder path; if not, returns an empty string.", "inputDescription": "No external input is needed – the task simply queries the local filesystem.", "inputRequired": [], "outputDescription": "stored_dest_path – either the absolute folder path read from dest_folder.txt or an empty string if the file was not found.", "outputName": "stored_dest_path", "promptInstruction": "no instruction" }, { "taskID": 2, "semanticTitleOfTask": "Request writable folder path from user if absent", "taskDescription": "If stored_dest_path is empty, prompts the human user to supply an absolute, writable folder path that will become the download directory; otherwise passes the stored path through unchanged.", "inputDescription": "Consumes stored_dest_path from Task 1.", "inputRequired": ["stored_dest_path"], "outputDescription": "user_dest_path – the folder path string supplied by the user or the previously stored path.", "outputName": "user_dest_path", "promptInstruction": "no instruction" }, { "taskID": 3, "semanticTitleOfTask": "LLM validation of candidate folder path", "taskDescription": "Uses a language-model prompt to decide whether the candidate folder path appears to be a valid, writable directory on the current operating system. Returns strictly \"YES\" or \"NO\".", "inputDescription": "Takes user_dest_path from Task 2.", "inputRequired": ["user_dest_path"], "outputDescription": "path_validation_result – a single token: \"YES\" or \"NO\".", "outputName": "path_validation_result", "promptInstruction": "You are a path validation assistant. Analyze this directory path: `{{user_dest_path}}`. Considering the current operating system context, determine if this appears to be a valid, writable directory path. Respond with ONLY \"YES\" or \"NO\"." }, { "taskID": 4, "semanticTitleOfTask": "Persist validated destination folder path for future runs", "taskDescription": "If path_validation_result is \"YES\", writes the confirmed folder path to dest_folder.txt so future executions can reuse it. Regardless, outputs the path for downstream steps.", "inputDescription": "Consumes user_dest_path and path_validation_result to decide whether to write dest_folder.txt.", "inputRequired": ["user_dest_path", "path_validation_result"], "outputDescription": "dest_path – the absolute path accepted as the download destination.", "outputName": "dest_path", "promptInstruction": "no instruction" }, { "taskID": 5, "semanticTitleOfTask": "Load YouTube URL list from urls.json", "taskDescription": "Reads urls.json written by the URL-collector tasks, parses the JSON array, and holds up to five YouTube URLs in memory for processing.", "inputDescription": "Requires urls_json (the file path) from Task 185.", "inputRequired": ["urls_json"], "outputDescription": "url_list – an in-memory array (length ≤ 5) containing the YouTube URLs that will be downloaded.", "outputName": "url_list", "promptInstruction": "no instruction" }, { "taskID": 6, "semanticTitleOfTask": "Download each YouTube video as MP4 via Skill 194", "taskDescription": "Iterates through url_list, invoking Skill #194 to download each video in H.264/AAC MP4 format into dest_path. For each successful download records the original URL, absolute file path, and byte size, building a download_array.", "inputDescription": "Takes url_list and dest_path.", "inputRequired": ["url_list", "dest_path"], "outputDescription": "download_array – an array of objects like {url, local_path, file_size_bytes} describing every MP4 successfully saved.", "outputName": "download_array", "promptInstruction": "no instruction" }, { "taskID": 7, "semanticTitleOfTask": "Create pretty-printed JSON log of downloads", "taskDescription": "Transforms download_array into a human-readable, indented JSON string and writes that string to download_log.json inside dest_path.", "inputDescription": "Consumes download_array from Task 6.", "inputRequired": ["download_array"], "outputDescription": "download_log_json_path – the absolute file path of download_log.json that was just written.", "outputName": "download_log_json_path", "promptInstruction": "Format the following download information array as a properly indented, human-readable JSON structure: `{{download_array}}`. Each entry must contain url, local_path, and file_size_bytes fields. Use 2-space indentation and ensure all JSON syntax is valid." }, { "taskID": 8, "semanticTitleOfTask": "Generate human-readable summary report", "taskDescription": "Writes a ≤400-word plain-text summary that lists each downloaded video’s filename (without extension), its size in MB, plus overall totals. The text is saved as download_summary.txt in dest_path.", "inputDescription": "Requires download_array from Task 6.", "inputRequired": ["download_array"], "outputDescription": "human_summary_text – the textual summary of the downloads.", "outputName": "human_summary_text", "promptInstruction": "Create a concise, human-readable summary of these YouTube downloads: `{{download_array}}`. Include: 1) Each video's filename (without extension) as its title, 2) File sizes in MB rounded to one decimal place, 3) Total number of videos downloaded, and 4) Combined size of all downloads. Keep the summary under 400 words and format it in clear, easy-to-read paragraphs." }, { "taskID": 301, "semanticTitleOfTask": "Load download log into memory", "taskDescription": "Reads download_log.json produced earlier, parses its JSON content, and loads an array of {url, mp4_path} objects into memory.", "inputDescription": "Needs download_log_json_path (file path) from Task 7.", "inputRequired": ["download_log_json_path"], "outputDescription": "video_list – an in-memory array of video metadata objects, each containing a YouTube URL and the absolute path of the associated MP4 file.", "outputName": "video_list", "promptInstruction": "no instruction" }, { "taskID": 302, "semanticTitleOfTask": "Validate MP4 and extract first thumbnail", "taskDescription": "Iterates through video_list, attempts to open each MP4, and invokes Skill #202 to capture the first clear frame as a PNG thumbnail; records status \"OK\" on success or \"ERROR – cannot open\" on failure.", "inputDescription": "Takes video_list from Task 301; each entry supplies the MP4 path for thumbnail extraction.", "inputRequired": ["video_list"], "outputDescription": "validation_records – a list of records containing {url, mp4_path, status, thumbnail_path}. PNG thumbnails are saved in the same folder as the MP4s.", "outputName": "validation_records", "promptInstruction": "no instruction" }, { "taskID": 303, "semanticTitleOfTask": "Assemble validation data table", "taskDescription": "Transforms validation_records into a structured plain-text table with columns for YouTube URL, Local File, Status, and Thumbnail Path.", "inputDescription": "Consumes validation_records from Task 302.", "inputRequired": ["validation_records"], "outputDescription": "validation_table_text – a raw plain-text table string representing all validation data.", "outputName": "validation_table_text", "promptInstruction": "no instruction" }, { "taskID": 304, "semanticTitleOfTask": "LLM – Create integrity report text", "taskDescription": "Uses a language-model prompt to convert validation_table_text into a polished integrity report, adding header, total count, timestamp, and an error summary when applicable.", "inputDescription": "Takes validation_table_text from Task 303.", "inputRequired": ["validation_table_text"], "outputDescription": "integrity_report_text – a fully formatted integrity report as a UTF-8 string.", "outputName": "integrity_report_text", "promptInstruction": "Create a clear, well-organized integrity report from the following video validation data. Format each entry as:\n1. YouTube URL: full link\n2. Local File: complete path\n3. Status: 'OK' or 'ERROR - cannot open'\n4. Thumbnail: path to PNG\nAdd consistent spacing and section breaks, a header with total videos processed and current timestamp, and if any errors occurred, include a highlighted summary at the top." }, { "taskID": 305, "semanticTitleOfTask": "Write integrity report to file", "taskDescription": "Writes integrity_report_text to integrity_report.txt in the destination folder that contains the MP4s and returns the file path.", "inputDescription": "Needs integrity_report_text from Task 304 and validation_records (to locate the folder).", "inputRequired": ["integrity_report_text", "validation_records"], "outputDescription": "integrity_report_file_path – the absolute path of integrity_report.txt saved to disk.", "outputName": "integrity_report_file_path", "promptInstruction": "no instruction" }, { "taskID": 401, "semanticTitleOfTask": "Load download_log.json into memory", "taskDescription": "Reads download_log.json and converts its contents into an in-memory array so later steps can iterate over each video’s YouTube URL and local MP4 path.", "inputDescription": "Requires download_log_json_path produced by Task 7.", "inputRequired": ["download_log_json_path"], "outputDescription": "download_log_data – an array of objects containing youtube_url and mp4_local_path for up to five videos.", "outputName": "download_log_data", "promptInstruction": "no instruction" }, { "taskID": 402, "semanticTitleOfTask": "Skill #202 – generate 10 key thumbnails per MP4", "taskDescription": "Iterates over download_log_data and, for each mp4_local_path, calls Skill #202 to extract ten high-quality thumbnail images representing key frames, saving them beside the source video.", "inputDescription": "Takes download_log_data.", "inputRequired": ["download_log_data"], "outputDescription": "thumbnails_array – each element contains {mp4_local_path, youtube_url, thumbnail_urls:[…10 urls…]}. Thumbnail files are written to disk as a side-effect.", "outputName": "thumbnails_array", "promptInstruction": "Extract the 10 most representative frames for a YouTube video I have just downloaded; optimise for good visibility of the subject. Select frames that:\n- Are clear and in-focus\n- Show significant scene changes\n- Capture key moments or transitions\n- Avoid duplicate or nearly identical frames\n- Prioritize frames with good lighting and composition\n- Exclude frames with motion blur\n- Focus on frames that best represent the video's content" }, { "taskID": 403, "semanticTitleOfTask": "Write thumbnails_array to thumbnails_log.json", "taskDescription": "Serialises thumbnails_array and writes it to thumbnails_log.json in the destination folder.", "inputDescription": "Requires thumbnails_array from Task 402.", "inputRequired": ["thumbnails_array"], "outputDescription": "thumbnails_log_json_path – the absolute path of thumbnails_log.json.", "outputName": "thumbnails_log_json_path", "promptInstruction": "no instruction" }, { "taskID": 404, "semanticTitleOfTask": "Skill #223 – create plain-text thumbnails summary", "taskDescription": "Feeds thumbnails_array into a language-model prompt to craft a concise, human-readable summary listing each video’s title, file size, and first thumbnail URL.", "inputDescription": "Requires thumbnails_array from Task 402.", "inputRequired": ["thumbnails_array"], "outputDescription": "thumbnails_summary_text – a multi-line plain-text string containing the formatted summary.", "outputName": "thumbnails_summary_text", "promptInstruction": "Using the provided JSON data, create a concise plain-text summary. For each video entry:\nVideo: [Title]\nSize: [X.XX] MB\nPreview: [First thumbnail URL]\n---\nRepeat for each video entry, separated by line breaks. Make the output clean, organized, and easy to read." }, { "taskID": 405, "semanticTitleOfTask": "Save thumbnails_summary.txt to disk", "taskDescription": "Writes thumbnails_summary_text to thumbnails_summary.txt in the destination folder and returns its file path.", "inputDescription": "Needs thumbnails_summary_text from Task 404.", "inputRequired": ["thumbnails_summary_text"], "outputDescription": "thumbnails_summary_file_path – the absolute path of thumbnails_summary.txt saved to disk.", "outputName": "thumbnails_summary_file_path", "promptInstruction": "no instruction" } ]
Happy? Now Copy-Paste To Proceed...
BACK TO SUBAGENTS
COPY TO CLIPBOARD