वीडियो से आर्टिकल जेनरेशन को स्वचालित करने के लिए Vidiome के एपीआई का उपयोग कैसे करें
डेवलपर्स के लिए तकनीकी ट्यूटोरियल: बड़े पैमाने पर वीडियो-टू-आर्टिकल पीढ़ी को स्वचालित करने के लिए Vidiome के POST /api/v1/articles एंडपॉइंट का उपयोग करें। कर्ल + नोड.जेएस उदाहरण शामिल हैं।
Vidiome का REST API एक ही अनुरोध में किसी YouTube वीडियो को एक संरचित ब्लॉग आर्टिकल में बदल देता है। आप एक YouTube URL भेजते हैं, Vidiome वीडियो का ट्रांसक्रिप्ट पढ़ता है, LLM की मदद से आर्टिकल लिखता है और उसे JSON के रूप में लौटाता है: एक शीर्षक और सेक्शनों की एक सूची, जिनमें से हर सेक्शन का अपना H2 शीर्षक, सामग्री और टाइमस्टैम्प होते हैं।
इस ट्यूटोरियल में ऑथेंटिकेशन, अनुरोध और रिस्पॉन्स का फ़ॉर्मैट, curl और Node.js के उदाहरण, बैच प्रोसेसिंग, WordPress पर प्रकाशन और वे सीमाएँ शामिल हैं जिनका आपको ध्यान रखना होगा।
यह ट्यूटोरियल किसके लिए है
- SaaS डेवलपर्स, जो क्लाइंट्स या आंतरिक टूल्स के लिए कंटेंट ऑटोमेशन फ़ीचर बना रहे हैं
- कंटेंट एजेंसियाँ, जो हर हफ़्ते कई वीडियो प्रोसेस करती हैं और मैन्युअल चरणों से बचना चाहती हैं
- प्लेटफ़ॉर्म टीमें, जो वीडियो-से-आर्टिकल को किसी मौजूदा CMS या कंटेंट वर्कफ़्लो से जोड़ रही हैं
अगर आप डेवलपर नहीं बल्कि एक व्यक्तिगत क्रिएटर हैं, तो Vidiome वेब ऐप तेज़ रास्ता है। यह हर सेक्शन के लिए एक स्क्रीनशॉट भी लेता है, जो API नहीं करता।
Vidiome
Turn your videos into SEO traffic machines
मेरा पहला लेख जनरेट करेंक्रेडिट कार्ड की आवश्यकता नहीं · 120 मुफ़्त क्रेडिट
ज़रूरी चीज़ें
- पेड प्लान (Starter, Pro या Business) वाला Vidiome अकाउंट। फ़्री अकाउंट से आने वाले API अनुरोध
403के साथ अस्वीकार कर दिए जाते हैं। - ऐप में प्रोफ़ाइल → API कुंजियाँ में बनाई गई API कुंजी। कुंजियाँ
vdm_live_से शुरू होती हैं। इन्हें गुप्त रखें: जिसके पास भी कुंजी है, वह आपके क्रेडिट खर्च कर सकता है। - ऐसा YouTube वीडियो जिसका ट्रांसक्रिप्ट (मैन्युअल या ऑटोमैटिक कैप्शन) उपलब्ध हो। API इसी ट्रांसक्रिप्ट से काम करता है।
नए अकाउंट को प्लान चुनने से पहले वेब ऐप आज़माने के लिए 120 फ़्री क्रेडिट मिलते हैं।
एंडपॉइंट: POST /api/v1/articles
अनुरोध
POST https://www.vidiome.com/api/v1/articles
Content-Type: application/json
x-api-key: vdm_live_YOUR_KEY
Authorization: Bearer vdm_live_YOUR_KEY भी काम करता है।
अनुरोध की बॉडी
{
"youtubeUrl": "https://www.youtube.com/watch?v=XXXXXXXXXXX",
"language": "en"
}
| फ़ील्ड | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
youtubeUrl |
string | हाँ | YouTube वीडियो का पूरा URL |
language |
string | नहीं | वह भाषा जिसमें आर्टिकल लिखा जाएगा: en, fr, es, pt, de, ru, hi, uk, id या tr। इसे स्पष्ट रूप से सेट करें: इसके बिना कोई भाषा तय नहीं होती |
पूरा अनुरोध बस इतना ही है। फ़ाइल अपलोड, आउटपुट फ़ॉर्मैट या कीवर्ड के लिए कोई पैरामीटर नहीं है।
रिस्पॉन्स
यह कॉल सिंक्रोनस है: जब तक Vidiome आर्टिकल बनाता है, कनेक्शन खुला रहता है, फिर पूरा परिणाम वापस आता है। वीडियो की लंबाई के अनुसार इसमें कुछ सेकंड से लेकर कुछ मिनट तक लग सकते हैं।
{
"id": "5b0c9c2e-6f1d-4d8a-9a57-2f1f3c1e8b21",
"title": "How to Repurpose One Video into a Month of Content",
"sections": [
{
"id": "a3f1…",
"title": "Introduction: one video, many formats",
"content": "Most creators publish a video and move on…\n\n### Why the transcript is only a starting point\n\n…",
"startTime": 0,
"endTime": 74,
"images": []
}
],
"videoUrl": "https://www.youtube.com/watch?v=XXXXXXXXXXX",
"videoId": "XXXXXXXXXXX",
"language": "en",
"creditsUsed": 40,
"creditsRemaining": 460,
"createdAt": "2026-09-26T10:23:41.000Z"
}
रिस्पॉन्स के बारे में कुछ ज़रूरी बातें:
sectionsपढ़ने के क्रम में आते हैं: एक परिचय, मुख्य सेक्शन, फिर निष्कर्ष।titleसेक्शन का H2 है।contentटेक्स्ट है, जिसमें H3 उपशीर्षकों के लिए###वाली पंक्तियाँ, पैराग्राफ़ों के बीच खाली पंक्तियाँ,**बोल्ड**टेक्स्ट और-सूची आइटम होते हैं।startTime/endTimeसेकंड में होते हैं और बताते हैं कि हर सेक्शन वीडियो के किस हिस्से से लिया गया है। वीडियो को सही पल से एम्बेड करने के लिए यह उपयोगी है।- API के ज़रिए
imagesहमेशा खाली रहता है। स्क्रीनशॉट वेब ऐप ब्राउज़र में लेता है। उन्हें जोड़ने के लिए आर्टिकल को Vidiome में खोलें और वहीं चुनें, या अपनी खुद की इमेज इस्तेमाल करें। - आर्टिकल आपके अकाउंट में सेव होता है (
id)। यह आपके Vidiome डैशबोर्ड में दिखता है, जहाँ आप इसे एडिट कर सकते हैं।
कोड उदाहरण
curl
curl -X POST https://www.vidiome.com/api/v1/articles \
-H "Content-Type: application/json" \
-H "x-api-key: $VIDIOME_API_KEY" \
-d '{
"youtubeUrl": "https://www.youtube.com/watch?v=XXXXXXXXXXX",
"language": "en"
}'
Node.js (fetch)
const VIDIOME_API_KEY = process.env.VIDIOME_API_KEY;
async function generateArticle(youtubeUrl, language = 'en') {
const response = await fetch('https://www.vidiome.com/api/v1/articles', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': VIDIOME_API_KEY,
},
body: JSON.stringify({ youtubeUrl, language }),
// जेनरेशन में कुछ मिनट लग सकते हैं: क्लाइंट को पहले हार न मानने दें।
signal: AbortSignal.timeout(6 * 60 * 1000),
});
const data = await response.json();
if (!response.ok) {
const error = new Error(`Vidiome API ${response.status}: ${data.error}`);
error.status = response.status;
error.retryAfter = Number(response.headers.get('retry-after')) || null;
throw error;
}
return data;
}
// सेक्शनों को Markdown में बदलें (या अपने रेंडरर को दें)।
function toMarkdown(article) {
const body = article.sections
.map((section) => `## ${section.title}\n\n${section.content}`)
.join('\n\n');
return `# ${article.title}\n\n${body}\n`;
}
const article = await generateArticle('https://www.youtube.com/watch?v=XXXXXXXXXXX');
console.log(toMarkdown(article));
console.log(`Credits used: ${article.creditsUsed}, left: ${article.creditsRemaining}`);
ऑटोमेशन वर्कफ़्लो
┌─────────────────────────────────────────────────────────┐
│ वीडियो स्रोत परत
│ YouTube प्लेलिस्ट / चैनल / URL की सूची
└──────────────────────┬──────────────────────────────────┘
│ YouTube URL
▼
┌─────────────────────────────────────────────────────────┐
│ ऑर्केस्ट्रेशन परत
│ Cron job / n8n / Make.com / आपकी अपनी क्यू
│ - पहले से प्रोसेस हुए URL छोड़ें
│ - प्रति कुंजी प्रति मिनट 10 अनुरोधों से नीचे रहें
│ - 429 / 502 पर Retry-After के बाद दोबारा कोशिश करें
└──────────────────────┬──────────────────────────────────┘
│ POST /api/v1/articles
▼
┌─────────────────────────────────────────────────────────┐
│ VIDIOME API
│ 1. YouTube वीडियो का ट्रांसक्रिप्ट लाना
│ 2. LLM से आर्टिकल लिखना
│ 3. अकाउंट में सेव करना, शीर्षक + सेक्शन लौटाना
└──────────────────────┬──────────────────────────────────┘
│ आर्टिकल JSON
▼
┌─────────────────────────────────────────────────────────┐
│ पोस्ट-प्रोसेसिंग परत
│ - सेक्शनों को HTML या Markdown में बदलना
│ - मानवीय समीक्षा (अनुशंसित)
│ - इमेज, आंतरिक लिंक, meta description, schema
└──────────────────────┬──────────────────────────────────┘
│ प्रकाशन के लिए तैयार आर्टिकल
▼
┌─────────────────────────────────────────────────────────┐
│ CMS / प्लेटफ़ॉर्म
│ WordPress / Ghost / Webflow / Contentful / Sanity
└─────────────────────────────────────────────────────────┘
उपयोग के उदाहरण
किसी YouTube चैनल की बैच प्रोसेसिंग
हर API कुंजी प्रति मिनट 10 अनुरोधों तक सीमित है। चूँकि हर अनुरोध तब तक खुला रहता है जब तक उसका आर्टिकल तैयार न हो जाए, इसलिए कुछ ही समानांतर अनुरोध काफ़ी हैं:
async function processVideos(urls, { language = 'en', concurrency = 2 } = {}) {
const results = [];
const queue = [...urls];
async function worker() {
while (queue.length > 0) {
const url = queue.shift();
try {
results.push({ url, article: await generateArticle(url, language) });
} catch (error) {
if (error.status === 429 && error.retryAfter) {
await new Promise((r) => setTimeout(r, error.retryAfter * 1000));
queue.push(url); // बाद में दोबारा कोशिश करें
} else {
results.push({ url, error: error.message });
}
}
}
}
await Promise.all(Array.from({ length: concurrency }, worker));
return results;
}
402 मिलने पर बैच रोक दें: अगले वीडियो के लिए आपका क्रेडिट बैलेंस कम है।
WordPress पर प्रकाशित करना
Vidiome HTML नहीं, सेक्शन लौटाता है, इसलिए पहले उन्हें बदलें। marked जैसी Markdown लाइब्रेरी यह काम कर देती है, या आप कन्वर्ज़न को न्यूनतम रख सकते हैं:
import { marked } from 'marked';
async function publishToWordPress(article, { siteUrl, username, appPassword }) {
const credentials = Buffer.from(`${username}:${appPassword}`).toString('base64');
const html = marked.parse(
article.sections.map((s) => `## ${s.title}\n\n${s.content}`).join('\n\n')
);
const response = await fetch(`${siteUrl}/wp-json/wp/v2/posts`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Basic ${credentials}`,
},
body: JSON.stringify({
title: article.title,
content: html,
status: 'draft', // प्रकाशित करने से पहले समीक्षा करें
}),
});
return response.json();
}
एक वीडियो, कई भाषाएँ
हर भाषा के लिए एक अनुरोध भेजें। हर अनुरोध एक अलग जेनरेशन है और किसी भी अन्य जेनरेशन की तरह क्रेडिट खर्च करता है:
const LANGUAGES = ['en', 'fr', 'es', 'de'];
async function generateInLanguages(youtubeUrl) {
const versions = {};
for (const language of LANGUAGES) {
versions[language] = await generateArticle(youtubeUrl, language);
}
return versions;
}
सीमाएँ और क्रेडिट
- रेट लिमिट: हर पेड प्लान पर प्रति API कुंजी प्रति मिनट 10 अनुरोध। इससे ज़्यादा होने पर आपको
Retry-Afterहेडर (सेकंड में) के साथ429मिलेगा। - अवधि: Vidiome की ओर से हर अनुरोध अधिकतम 5 मिनट तक चल सकता है। बहुत लंबे वीडियो इस समय में फ़िट न हों, यह संभव है; अपने वर्कफ़्लो को बाँटें या उनके लिए वेब ऐप इस्तेमाल करें।
- क्रेडिट: API का शुल्क वेब ऐप जैसा ही है, मौजूदा दर पर वीडियो के प्रति मिनट 4 क्रेडिट और न्यूनतम 20 क्रेडिट (10 मिनट का वीडियो 40 क्रेडिट, 60 मिनट का वीडियो 240 क्रेडिट लेता है)। हर रिस्पॉन्स में
creditsUsedऔरcreditsRemainingबताए जाते हैं। प्लान और क्रेडिट पैक के लिए प्राइसिंग देखें।
एरर हैंडलिंग
एरर error फ़ील्ड वाले JSON के रूप में लौटते हैं।
| स्टेटस | error |
क्या करें |
|---|---|---|
400 |
Invalid request body या invalid-youtube-url |
URL और भाषा कोड जाँचें |
401 |
Missing API key / Invalid or revoked API key |
x-api-key हेडर जाँचें |
402 |
insufficient-credits (required और available के साथ) |
क्रेडिट टॉप-अप करें या प्लान अपग्रेड करें |
403 |
api_access_requires_paid_plan |
पेड प्लान पर जाएँ |
404 |
no-captions |
वीडियो का ट्रांसक्रिप्ट नहीं है; कोई दूसरा वीडियो आज़माएँ |
429 |
रेट लिमिट, या transcript_provider_rate_limited |
Retry-After तक रुकें, फिर दोबारा कोशिश करें |
500 |
article_generation_failed |
एक बार दोबारा कोशिश करें; अगर फिर भी विफल हो, तो हमसे संपर्क करें |
502 |
transcript_provider_unavailable / llm_provider_error |
अस्थायी: कुछ देर बाद दोबारा कोशिश करें |
अक्सर पूछे जाने वाले प्रश्न
क्या मैं YouTube URL की जगह वीडियो फ़ाइल भेज सकता हूँ?
नहीं। API केवल YouTube URL स्वीकार करता है, और वीडियो का ट्रांसक्रिप्ट होना ज़रूरी है। MP4, MOV या WebM फ़ाइलों के लिए वेब ऐप इस्तेमाल करें: यह ऑडियो को ट्रांसक्राइब करता है और हर सेक्शन के लिए एक स्क्रीनशॉट भी लेता है।
क्या कोई वेबहुक या स्टेटस एंडपॉइंट है?
नहीं। अनुरोध सिंक्रोनस है और तैयार आर्टिकल लौटाता है। अगर आप कई वीडियो प्रोसेस करते हैं, तो कॉल्स को अपनी जॉब क्यू (cron job, n8n, Make.com, कोई worker) में रखें और परिणाम आते ही उन्हें सेव करें।
API से बने आर्टिकल कहाँ जाते हैं?
वे आपके Vidiome अकाउंट में सेव होते हैं, इसलिए आप उन्हें अपने डैशबोर्ड में पाएँगे। स्क्रीनशॉट जोड़ने, AI रीराइट से किसी हिस्से को ठीक करने या आर्टिकल को HTML या Markdown में एक्सपोर्ट करने का यह सबसे आसान तरीका है।
अगले कदम
संबंधित समाधान देखें
वीडियो को बेहतर रैंक करने वाली लिखित सामग्री में बदलने के और तरीके जानें।
Vidiome API से YouTube वीडियो को आर्टिकल में बदलना ऑटोमेट करें
Vidiome API को YouTube URL भेजें और तैयार आर्टिकल JSON में पाएं: शीर्षक और सेक्शन। 10 भाषाएँ, पेड प्लान, प्रति मिनट 10 अनुरोध।
एजेंसी स्केल पर वीडियो से क्लाइंट SEO आर्टिकल डिलीवर करें
Vidiome एजेंसी-ग्रेड AI video-to-article प्लेटफ़ॉर्म है। क्लाइंट वीडियो से SEO ब्लॉग आर्टिकल 5 मिनट से कम में डिलीवर करें — 10 भाषाएँ, HTML/Markdown एक्सपोर्ट।
वीडियो के साथ SaaS कंटेंट मार्केटिंग स्केल करें — स्वचालित
Vidiome SaaS टीमों को प्रोडक्ट डेमो, वेबिनार और ट्यूटोरियल से SEO ब्लॉग आर्टिकल स्वचालित रूप से बनाने में मदद करता है — लगभग 100 articles/माह, 10 भाषाएँ।
Vidiome
Turn your videos into SEO traffic machines
मेरा पहला लेख जनरेट करेंक्रेडिट कार्ड की आवश्यकता नहीं · 120 मुफ़्त क्रेडिट