OpenAI Prompts Editor
View and edit prompts used for generating content. Click "Expand" to view full prompt, "Edit" to modify (password required).
Available Variables
Click any variable to copy it to your clipboard
{guest_name}
Guest's full name
{guest_title}
Guest's job title or role
{guest_company}
Guest's company or organization name
{guest_linkedin}
Guest's LinkedIn profile URL
{transcript}
Full episode transcript text (auto-truncated per prompt type)
{transcript_with_timecodes}
Transcript with timestamps formatted as [HH:MM:SS] (for quotes and chapters)
{video_title}
Audio file or video title
{video_duration}
Video/audio duration in seconds
{standard_static_content}
Standard static content (manually entered)
Standard Static Content
Variable: {standard_static_content} - Use this variable in prompts to include the standard static content.
YouTube Summary
Blog Post
Clickbait Titles
Two Line Summary
Quotes
Chapter Timestamps
LinkedIn Post
Keywords
Password Required
Enter master password to edit this prompt.
⚠️ Warning: Prompt Changes
Changing prompts will affect all future content generation deliverables:
- All newly generated content will use the updated prompts
- Existing generated content will NOT be affected
- Changes will impact: YouTube Summary, Blog Post, Titles, Quotes, LinkedIn Posts, Keywords, and all other deliverables
- This action cannot be easily undone
Are you absolutely sure you want to save these changes?
Projects Gallery
Browse and open your previously processed projects from local storage.
No projects found in local storage.
Process a video to create your first project.
Text Gen API
Webhook API for programmatic content generation
Text Gen API Documentation
Use the webhook API to generate content programmatically in N8N or any automation tool. All endpoints require Bearer token authentication.
Webhook URL
Bearer Token
Use this token for authentication in N8N or other automation tools:
N8N Setup Instructions
- Create a new HTTP Request node in your N8N workflow
- Set the Method to
POST - Set the URL to the Webhook URL shown above
- In Authentication, select
Generic Credential Type→Header Auth - Set Name to
Authorization - Set Value to
Bearer YOUR_TOKEN(use the Bearer Token shown above) - In Body, select
JSONand add your request body with required fields (transcript, guest_name, guest_title, guest_company, guest_linkedin) - Connect the node to trigger your workflow
Authentication
All API requests require Bearer token authentication in the Authorization header:
Authorization: Bearer YOUR_TOKEN_HERE
Endpoints
1. Generate All Content
POST /api/generate-content
Generates all content types in a single request.
Request Body
{
"transcript": "Full transcript text...",
"transcript_with_timecodes": [
{"start": 0, "text": "First sentence"},
{"start": 5, "text": "Second sentence"}
],
"guest_name": "John Doe",
"guest_title": "CEO",
"guest_company": "Company Name",
"guest_linkedin": "https://www.linkedin.com/in/johndoe",
"video_title": "Episode Title",
"video_duration": 3600
}
Response
{
"youtube_summary": "3 paragraph summary...",
"blog_post": "2000 word blog post...",
"clickbait_titles": ["Title 1", "Title 2", ...],
"two_line_summary": "Two line summary...",
"quotes": ["Quote 1", "Quote 2", ...],
"chapter_timestamps": ["00:00 Introduction", ...],
"linkedin_post": "LinkedIn post content...",
"keywords": "keyword1, keyword2, ...",
"hashtags": "#keyword1 #keyword2 ..."
}
2. Generate Single Content Type
POST /api/generate-content/{content_type}
Generates a single content type. Available types:
youtube_summaryblog_postclickbait_titlestwo_line_summaryquoteschapter_timestampslinkedin_postkeywordshashtags
Example Request
POST /api/generate-content/youtube_summary
Authorization: Bearer YOUR_TOKEN_HERE
Content-Type: application/json
{
"transcript": "Full transcript text...",
"transcript_with_timecodes": [],
"guest_name": "John Doe",
"guest_title": "CEO",
"guest_company": "Company Name",
"guest_linkedin": "https://www.linkedin.com/in/johndoe",
"video_title": "Episode Title",
"video_duration": 3600
}
Example Response
{
"youtube_summary": "3 paragraph summary..."
}
Sample cURL Request
curl -X POST "https://contents.2160.media/api/generate-content/youtube_summary" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{
"transcript": "Full transcript text...",
"transcript_with_timecodes": [],
"guest_name": "John Doe",
"guest_title": "CEO",
"guest_company": "Company Name",
"guest_linkedin": "https://www.linkedin.com/in/johndoe",
"video_title": "Episode Title",
"video_duration": 3600
}'
Sample JavaScript Request
const response = await fetch('https://contents.2160.media/api/generate-content/youtube_summary', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_TOKEN_HERE',
'Content-Type': 'application/json'
},
body: JSON.stringify({
transcript: 'Full transcript text...',
transcript_with_timecodes: [],
guest_name: 'John Doe',
guest_title: 'CEO',
guest_company: 'Company Name',
guest_linkedin: 'https://www.linkedin.com/in/johndoe',
video_title: 'Episode Title',
video_duration: 3600
})
});
const data = await response.json();
console.log(data.youtube_summary);
Error Responses
All errors return a JSON object with a detail field:
{
"detail": "Error message here"
}
Common status codes:
- 401 - Authentication required
- 400 - Invalid request (missing fields, invalid content type, etc.)
- 500 - Server error
Upload Audio File
Guest Information
Transcript with Timecodes
3 Paragraph YouTube Summary
2000 Word Blog Post
2 Line Summary
20 Clickbait Titles
20 Quotes
YouTube-Ready Chapter Timestamps
Full Episode Description
3 Paragraph Summary + Standard Static Content + Chapter Timestamps