@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;AA4BtB,qBAAa,iBAAkB,YAAW,SAAS;IAClD,WAAW,EAAE,oBAAoB,CAgF/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAqGvE"}
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
- // @ts-ignore - youtube-transcript doesn't have types
6
- const youtube_transcript_1 = require("youtube-transcript");
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(/&nbsp;/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
- // Fetch transcript
126
- const transcriptSegments = await youtube_transcript_1.YoutubeTranscript.fetchTranscript(videoId, {
127
- lang: language,
128
- });
129
- if (!transcriptSegments || transcriptSegments.length === 0) {
130
- // Return empty result instead of error
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: 'No transcript available for this video',
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":"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"}
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.0.0",
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
  }