@donlovett/n8n-nodes-youtube-transcript 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YouTubeTranscript.node.d.ts","sourceRoot":"","sources":["../../../nodes/YouTubeTranscript/YouTubeTranscript.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAEpB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"YouTubeTranscript.node.d.ts","sourceRoot":"","sources":["../../../nodes/YouTubeTranscript/YouTubeTranscript.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAEpB,MAAM,cAAc,CAAC;AAmGtB,qBAAa,iBAAkB,YAAW,SAAS;IAClD,WAAW,EAAE,oBAAoB,CAgF/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAsJvE"}
|
|
@@ -1,9 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.YouTubeTranscript = void 0;
|
|
4
27
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
-
|
|
6
|
-
const
|
|
28
|
+
const child_process_1 = require("child_process");
|
|
29
|
+
const util_1 = require("util");
|
|
30
|
+
const fs = __importStar(require("fs"));
|
|
31
|
+
const path = __importStar(require("path"));
|
|
32
|
+
const os = __importStar(require("os"));
|
|
33
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
7
34
|
// Helper function to extract video ID from URL
|
|
8
35
|
function extractVideoId(input) {
|
|
9
36
|
// Already a video ID (11 characters, alphanumeric with - and _)
|
|
@@ -23,6 +50,63 @@ function extractVideoId(input) {
|
|
|
23
50
|
}
|
|
24
51
|
return input; // Return as-is and let the API handle validation
|
|
25
52
|
}
|
|
53
|
+
// Parse VTT content to extract text
|
|
54
|
+
function parseVTT(vttContent) {
|
|
55
|
+
const lines = vttContent.split('\n');
|
|
56
|
+
const segments = [];
|
|
57
|
+
let currentSegment = null;
|
|
58
|
+
for (let i = 0; i < lines.length; i++) {
|
|
59
|
+
const line = lines[i].trim();
|
|
60
|
+
// Skip header and empty lines
|
|
61
|
+
if (line === 'WEBVTT' || line.startsWith('Kind:') || line.startsWith('Language:') || line === '') {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
// Check for timestamp line (e.g., "00:00:18.790 --> 00:00:18.800")
|
|
65
|
+
const timestampMatch = line.match(/^(\d{2}:\d{2}:\d{2}\.\d{3})\s*-->\s*(\d{2}:\d{2}:\d{2}\.\d{3})/);
|
|
66
|
+
if (timestampMatch) {
|
|
67
|
+
if (currentSegment && currentSegment.text) {
|
|
68
|
+
segments.push(currentSegment);
|
|
69
|
+
}
|
|
70
|
+
currentSegment = {
|
|
71
|
+
start: timestampMatch[1],
|
|
72
|
+
end: timestampMatch[2],
|
|
73
|
+
text: '',
|
|
74
|
+
};
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
// Add text to current segment
|
|
78
|
+
if (currentSegment && line && !line.match(/^\d+$/)) {
|
|
79
|
+
// Remove VTT formatting tags like <c> and timing tags
|
|
80
|
+
const cleanText = line
|
|
81
|
+
.replace(/<[^>]+>/g, '')
|
|
82
|
+
.replace(/ /g, ' ')
|
|
83
|
+
.trim();
|
|
84
|
+
if (cleanText && !currentSegment.text.includes(cleanText)) {
|
|
85
|
+
currentSegment.text = (currentSegment.text + ' ' + cleanText).trim();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Add last segment
|
|
90
|
+
if (currentSegment && currentSegment.text) {
|
|
91
|
+
segments.push(currentSegment);
|
|
92
|
+
}
|
|
93
|
+
// Deduplicate and combine text
|
|
94
|
+
const seenTexts = new Set();
|
|
95
|
+
const uniqueSegments = segments.filter(seg => {
|
|
96
|
+
if (seenTexts.has(seg.text)) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
seenTexts.add(seg.text);
|
|
100
|
+
return true;
|
|
101
|
+
});
|
|
102
|
+
const fullText = uniqueSegments
|
|
103
|
+
.map(seg => seg.text)
|
|
104
|
+
.join(' ')
|
|
105
|
+
.replace(/\s+/g, ' ')
|
|
106
|
+
.replace(/\[Music\]/gi, '')
|
|
107
|
+
.trim();
|
|
108
|
+
return { text: fullText, segments: uniqueSegments };
|
|
109
|
+
}
|
|
26
110
|
class YouTubeTranscript {
|
|
27
111
|
constructor() {
|
|
28
112
|
this.description = {
|
|
@@ -32,7 +116,7 @@ class YouTubeTranscript {
|
|
|
32
116
|
group: ['transform'],
|
|
33
117
|
version: 1,
|
|
34
118
|
subtitle: '={{$parameter["operation"]}}',
|
|
35
|
-
description: 'Fetch transcripts from YouTube videos',
|
|
119
|
+
description: 'Fetch transcripts from YouTube videos using yt-dlp',
|
|
36
120
|
defaults: {
|
|
37
121
|
name: 'YouTube Transcript',
|
|
38
122
|
},
|
|
@@ -122,55 +206,102 @@ class YouTubeTranscript {
|
|
|
122
206
|
if (!videoId) {
|
|
123
207
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Invalid video ID or URL provided', { itemIndex: i });
|
|
124
208
|
}
|
|
125
|
-
//
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
//
|
|
209
|
+
// Create temp directory for subtitle file
|
|
210
|
+
const tempDir = os.tmpdir();
|
|
211
|
+
const outputPath = path.join(tempDir, `yt_transcript_${videoId}_${Date.now()}`);
|
|
212
|
+
const vttFile = `${outputPath}.${language}.vtt`;
|
|
213
|
+
try {
|
|
214
|
+
// Use yt-dlp to download subtitles
|
|
215
|
+
const ytdlpCmd = `yt-dlp --write-auto-sub --sub-lang ${language} --skip-download --output "${outputPath}" "https://www.youtube.com/watch?v=${videoId}" 2>&1`;
|
|
216
|
+
await execAsync(ytdlpCmd, { timeout: 60000 });
|
|
217
|
+
// Check if VTT file was created
|
|
218
|
+
if (!fs.existsSync(vttFile)) {
|
|
219
|
+
// Try without auto-sub (for manual subtitles)
|
|
220
|
+
const ytdlpCmdManual = `yt-dlp --write-sub --sub-lang ${language} --skip-download --output "${outputPath}" "https://www.youtube.com/watch?v=${videoId}" 2>&1`;
|
|
221
|
+
await execAsync(ytdlpCmdManual, { timeout: 60000 });
|
|
222
|
+
}
|
|
223
|
+
if (!fs.existsSync(vttFile)) {
|
|
224
|
+
returnData.push({
|
|
225
|
+
json: {
|
|
226
|
+
videoId,
|
|
227
|
+
language,
|
|
228
|
+
hasTranscript: false,
|
|
229
|
+
error: 'No transcript available for this video',
|
|
230
|
+
transcript: '',
|
|
231
|
+
wordCount: 0,
|
|
232
|
+
},
|
|
233
|
+
});
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
// Read and parse VTT file
|
|
237
|
+
const vttContent = fs.readFileSync(vttFile, 'utf-8');
|
|
238
|
+
const { text, segments } = parseVTT(vttContent);
|
|
239
|
+
// Clean up temp file
|
|
240
|
+
try {
|
|
241
|
+
fs.unlinkSync(vttFile);
|
|
242
|
+
}
|
|
243
|
+
catch (e) {
|
|
244
|
+
// Ignore cleanup errors
|
|
245
|
+
}
|
|
246
|
+
if (!text || text.length < 10) {
|
|
247
|
+
returnData.push({
|
|
248
|
+
json: {
|
|
249
|
+
videoId,
|
|
250
|
+
language,
|
|
251
|
+
hasTranscript: false,
|
|
252
|
+
error: 'Transcript is empty or too short',
|
|
253
|
+
transcript: '',
|
|
254
|
+
wordCount: 0,
|
|
255
|
+
},
|
|
256
|
+
});
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
const wordCount = text.split(/\s+/).filter((w) => w).length;
|
|
260
|
+
if (outputFormat === 'fullText') {
|
|
261
|
+
returnData.push({
|
|
262
|
+
json: {
|
|
263
|
+
videoId,
|
|
264
|
+
language,
|
|
265
|
+
hasTranscript: true,
|
|
266
|
+
transcript: text,
|
|
267
|
+
wordCount,
|
|
268
|
+
segmentCount: segments.length,
|
|
269
|
+
},
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
returnData.push({
|
|
274
|
+
json: {
|
|
275
|
+
videoId,
|
|
276
|
+
language,
|
|
277
|
+
hasTranscript: true,
|
|
278
|
+
segments,
|
|
279
|
+
segmentCount: segments.length,
|
|
280
|
+
},
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
catch (execError) {
|
|
285
|
+
// Clean up any temp files
|
|
286
|
+
try {
|
|
287
|
+
if (fs.existsSync(vttFile))
|
|
288
|
+
fs.unlinkSync(vttFile);
|
|
289
|
+
}
|
|
290
|
+
catch (e) {
|
|
291
|
+
// Ignore cleanup errors
|
|
292
|
+
}
|
|
131
293
|
returnData.push({
|
|
132
294
|
json: {
|
|
133
295
|
videoId,
|
|
134
296
|
language,
|
|
135
297
|
hasTranscript: false,
|
|
136
|
-
error:
|
|
298
|
+
error: execError instanceof Error ? execError.message : 'Failed to fetch transcript',
|
|
137
299
|
transcript: '',
|
|
138
300
|
wordCount: 0,
|
|
139
301
|
},
|
|
140
302
|
});
|
|
141
303
|
continue;
|
|
142
304
|
}
|
|
143
|
-
if (outputFormat === 'fullText') {
|
|
144
|
-
// Combine all segments into a single text
|
|
145
|
-
const fullText = transcriptSegments
|
|
146
|
-
.map((segment) => segment.text)
|
|
147
|
-
.join(' ')
|
|
148
|
-
.replace(/\s+/g, ' ')
|
|
149
|
-
.trim();
|
|
150
|
-
const wordCount = fullText.split(/\s+/).filter((w) => w).length;
|
|
151
|
-
returnData.push({
|
|
152
|
-
json: {
|
|
153
|
-
videoId,
|
|
154
|
-
language,
|
|
155
|
-
hasTranscript: true,
|
|
156
|
-
transcript: fullText,
|
|
157
|
-
wordCount,
|
|
158
|
-
segmentCount: transcriptSegments.length,
|
|
159
|
-
},
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
// Return segments with timing
|
|
164
|
-
returnData.push({
|
|
165
|
-
json: {
|
|
166
|
-
videoId,
|
|
167
|
-
language,
|
|
168
|
-
hasTranscript: true,
|
|
169
|
-
segments: transcriptSegments,
|
|
170
|
-
segmentCount: transcriptSegments.length,
|
|
171
|
-
},
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
305
|
}
|
|
175
306
|
}
|
|
176
307
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YouTubeTranscript.node.js","sourceRoot":"","sources":["../../../nodes/YouTubeTranscript/YouTubeTranscript.node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"YouTubeTranscript.node.js","sourceRoot":"","sources":["../../../nodes/YouTubeTranscript/YouTubeTranscript.node.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@donlovett/n8n-nodes-youtube-transcript",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "n8n node to fetch YouTube video transcripts",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
@@ -43,9 +43,7 @@
|
|
|
43
43
|
"prettier": "^3.2.5",
|
|
44
44
|
"typescript": "~5.4.0"
|
|
45
45
|
},
|
|
46
|
-
"dependencies": {
|
|
47
|
-
"youtube-transcript": "^1.2.1"
|
|
48
|
-
},
|
|
46
|
+
"dependencies": {},
|
|
49
47
|
"peerDependencies": {
|
|
50
48
|
"n8n-workflow": "*"
|
|
51
49
|
}
|