@donlovett/n8n-nodes-youtube-transcript 1.0.0 → 1.2.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,EAGpB,MAAM,cAAc,CAAC;AAgEtB,qBAAa,iBAAkB,YAAW,SAAS;IAClD,WAAW,EAAE,oBAAoB,CAgF/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAkQvE"}
@@ -2,8 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.YouTubeTranscript = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
- // @ts-ignore - youtube-transcript doesn't have types
6
- const youtube_transcript_1 = require("youtube-transcript");
7
5
  // Helper function to extract video ID from URL
8
6
  function extractVideoId(input) {
9
7
  // Already a video ID (11 characters, alphanumeric with - and _)
@@ -23,6 +21,39 @@ function extractVideoId(input) {
23
21
  }
24
22
  return input; // Return as-is and let the API handle validation
25
23
  }
24
+ // Parse transcript segments from YouTube's timedtext JSON format
25
+ function parseTranscriptEvents(events) {
26
+ const segments = [];
27
+ for (const event of events) {
28
+ if (event.segs) {
29
+ const text = event.segs
30
+ .map((seg) => seg.utf8 || '')
31
+ .join('')
32
+ .trim();
33
+ if (text && text !== '\n') {
34
+ segments.push({
35
+ start: (event.tStartMs || 0) / 1000,
36
+ duration: (event.dDurationMs || 0) / 1000,
37
+ text: text.replace(/\n/g, ' ').trim(),
38
+ });
39
+ }
40
+ }
41
+ }
42
+ // Deduplicate consecutive identical segments
43
+ const uniqueSegments = [];
44
+ for (const seg of segments) {
45
+ if (uniqueSegments.length === 0 || uniqueSegments[uniqueSegments.length - 1].text !== seg.text) {
46
+ uniqueSegments.push(seg);
47
+ }
48
+ }
49
+ const fullText = uniqueSegments
50
+ .map(seg => seg.text)
51
+ .join(' ')
52
+ .replace(/\s+/g, ' ')
53
+ .replace(/\[Music\]/gi, '')
54
+ .trim();
55
+ return { text: fullText, segments: uniqueSegments };
56
+ }
26
57
  class YouTubeTranscript {
27
58
  constructor() {
28
59
  this.description = {
@@ -108,6 +139,7 @@ class YouTubeTranscript {
108
139
  };
109
140
  }
110
141
  async execute() {
142
+ var _a, _b;
111
143
  const items = this.getInputData();
112
144
  const returnData = [];
113
145
  for (let i = 0; i < items.length; i++) {
@@ -122,54 +154,202 @@ class YouTubeTranscript {
122
154
  if (!videoId) {
123
155
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Invalid video ID or URL provided', { itemIndex: i });
124
156
  }
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
131
- returnData.push({
132
- json: {
133
- videoId,
134
- language,
135
- hasTranscript: false,
136
- error: 'No transcript available for this video',
137
- transcript: '',
138
- wordCount: 0,
157
+ try {
158
+ // Step 1: Fetch the video page to get caption track info
159
+ const pageOptions = {
160
+ method: 'GET',
161
+ url: `https://www.youtube.com/watch?v=${videoId}`,
162
+ headers: {
163
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
164
+ 'Accept-Language': 'en-US,en;q=0.9',
139
165
  },
166
+ };
167
+ const pageResponse = await this.helpers.httpRequest(pageOptions);
168
+ const pageHtml = typeof pageResponse === 'string' ? pageResponse : JSON.stringify(pageResponse);
169
+ // Extract captions data from the page
170
+ const captionsMatch = pageHtml.match(/"captions":\s*(\{[^}]+\}[^}]+\}[^}]+\})/);
171
+ if (!captionsMatch) {
172
+ // Try alternate pattern for captionTracks
173
+ const tracksMatch = pageHtml.match(/"captionTracks":\s*(\[[^\]]+\])/);
174
+ if (!tracksMatch) {
175
+ returnData.push({
176
+ json: {
177
+ videoId,
178
+ language,
179
+ hasTranscript: false,
180
+ error: 'No captions available for this video',
181
+ transcript: '',
182
+ wordCount: 0,
183
+ },
184
+ });
185
+ continue;
186
+ }
187
+ }
188
+ // Extract the playerCaptionsTracklistRenderer which contains caption URLs
189
+ const playerResponseMatch = pageHtml.match(/ytInitialPlayerResponse\s*=\s*(\{.+?\});/s);
190
+ if (!playerResponseMatch) {
191
+ returnData.push({
192
+ json: {
193
+ videoId,
194
+ language,
195
+ hasTranscript: false,
196
+ error: 'Could not parse video data',
197
+ transcript: '',
198
+ wordCount: 0,
199
+ },
200
+ });
201
+ continue;
202
+ }
203
+ let playerData;
204
+ try {
205
+ // Find the end of the JSON object properly
206
+ let jsonStr = playerResponseMatch[1];
207
+ let braceCount = 0;
208
+ let endIndex = 0;
209
+ for (let j = 0; j < jsonStr.length; j++) {
210
+ if (jsonStr[j] === '{')
211
+ braceCount++;
212
+ if (jsonStr[j] === '}')
213
+ braceCount--;
214
+ if (braceCount === 0) {
215
+ endIndex = j + 1;
216
+ break;
217
+ }
218
+ }
219
+ jsonStr = jsonStr.substring(0, endIndex);
220
+ playerData = JSON.parse(jsonStr);
221
+ }
222
+ catch (parseError) {
223
+ returnData.push({
224
+ json: {
225
+ videoId,
226
+ language,
227
+ hasTranscript: false,
228
+ error: 'Failed to parse player data',
229
+ transcript: '',
230
+ wordCount: 0,
231
+ },
232
+ });
233
+ continue;
234
+ }
235
+ const captions = (_b = (_a = playerData === null || playerData === void 0 ? void 0 : playerData.captions) === null || _a === void 0 ? void 0 : _a.playerCaptionsTracklistRenderer) === null || _b === void 0 ? void 0 : _b.captionTracks;
236
+ if (!captions || captions.length === 0) {
237
+ returnData.push({
238
+ json: {
239
+ videoId,
240
+ language,
241
+ hasTranscript: false,
242
+ error: 'No caption tracks found',
243
+ transcript: '',
244
+ wordCount: 0,
245
+ },
246
+ });
247
+ continue;
248
+ }
249
+ // Find the caption track for the requested language
250
+ let captionTrack = captions.find((track) => {
251
+ var _a, _b;
252
+ return track.languageCode === language ||
253
+ ((_a = track.vssId) === null || _a === void 0 ? void 0 : _a.includes(`.${language}`)) ||
254
+ ((_b = track.vssId) === null || _b === void 0 ? void 0 : _b.includes(`a.${language}`));
140
255
  });
141
- continue;
142
- }
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,
256
+ // If not found, try to find auto-generated captions
257
+ if (!captionTrack) {
258
+ captionTrack = captions.find((track) => { var _a, _b; return ((_a = track.vssId) === null || _a === void 0 ? void 0 : _a.startsWith('a.')) && ((_b = track.languageCode) === null || _b === void 0 ? void 0 : _b.startsWith(language.split('-')[0])); });
259
+ }
260
+ // Fallback to first available track
261
+ if (!captionTrack) {
262
+ captionTrack = captions[0];
263
+ }
264
+ if (!(captionTrack === null || captionTrack === void 0 ? void 0 : captionTrack.baseUrl)) {
265
+ returnData.push({
266
+ json: {
267
+ videoId,
268
+ language,
269
+ hasTranscript: false,
270
+ error: 'No caption URL found',
271
+ transcript: '',
272
+ wordCount: 0,
273
+ },
274
+ });
275
+ continue;
276
+ }
277
+ // Step 2: Fetch the captions in JSON format
278
+ const captionUrl = captionTrack.baseUrl + '&fmt=json3';
279
+ const captionOptions = {
280
+ method: 'GET',
281
+ url: captionUrl,
282
+ headers: {
283
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
159
284
  },
160
- });
285
+ };
286
+ const captionResponse = await this.helpers.httpRequest(captionOptions);
287
+ const captionData = typeof captionResponse === 'string' ? JSON.parse(captionResponse) : captionResponse;
288
+ if (!captionData.events || captionData.events.length === 0) {
289
+ returnData.push({
290
+ json: {
291
+ videoId,
292
+ language,
293
+ hasTranscript: false,
294
+ error: 'Caption data is empty',
295
+ transcript: '',
296
+ wordCount: 0,
297
+ },
298
+ });
299
+ continue;
300
+ }
301
+ // Parse the transcript
302
+ const { text, segments } = parseTranscriptEvents(captionData.events);
303
+ if (!text || text.length < 10) {
304
+ returnData.push({
305
+ json: {
306
+ videoId,
307
+ language: captionTrack.languageCode || language,
308
+ hasTranscript: false,
309
+ error: 'Transcript is empty or too short',
310
+ transcript: '',
311
+ wordCount: 0,
312
+ },
313
+ });
314
+ continue;
315
+ }
316
+ const wordCount = text.split(/\s+/).filter((w) => w).length;
317
+ if (outputFormat === 'fullText') {
318
+ returnData.push({
319
+ json: {
320
+ videoId,
321
+ language: captionTrack.languageCode || language,
322
+ hasTranscript: true,
323
+ transcript: text,
324
+ wordCount,
325
+ segmentCount: segments.length,
326
+ },
327
+ });
328
+ }
329
+ else {
330
+ returnData.push({
331
+ json: {
332
+ videoId,
333
+ language: captionTrack.languageCode || language,
334
+ hasTranscript: true,
335
+ segments,
336
+ segmentCount: segments.length,
337
+ },
338
+ });
339
+ }
161
340
  }
162
- else {
163
- // Return segments with timing
341
+ catch (fetchError) {
164
342
  returnData.push({
165
343
  json: {
166
344
  videoId,
167
345
  language,
168
- hasTranscript: true,
169
- segments: transcriptSegments,
170
- segmentCount: transcriptSegments.length,
346
+ hasTranscript: false,
347
+ error: fetchError instanceof Error ? fetchError.message : 'Failed to fetch transcript',
348
+ transcript: '',
349
+ wordCount: 0,
171
350
  },
172
351
  });
352
+ continue;
173
353
  }
174
354
  }
175
355
  }
@@ -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.2.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
  }