defuddle 0.12.0 → 0.13.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.
@@ -2,8 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.YoutubeExtractor = void 0;
4
4
  const _base_1 = require("./_base");
5
+ const utils_1 = require("../utils");
5
6
  const transcript_1 = require("../utils/transcript");
6
7
  const SENTENCE_END = /[.!?]["'\u2019\u201D)]*\s*$/;
8
+ const QUESTION_END = /\?["'\u2019\u201D)]*\s*$/;
9
+ const TRANSCRIPT_GROUP_GAP_SECONDS = 20;
10
+ const TURN_MERGE_MAX_WORDS = 80;
11
+ const TURN_MERGE_MAX_SPAN_SECONDS = 45;
12
+ const SHORT_UTTERANCE_MAX_WORDS = 3;
13
+ const FIRST_GROUP_MERGE_MIN_WORDS = 8;
7
14
  // Unofficial InnerTube API. Uses Android client context to get caption track URLs.
8
15
  // Version may need updating if Google changes the API.
9
16
  const INNERTUBE_API_URL = 'https://www.youtube.com/youtubei/v1/player?prettyPrint=false';
@@ -25,6 +32,7 @@ const INNERTUBE_WEB_CONTEXT = {
25
32
  class YoutubeExtractor extends _base_1.BaseExtractor {
26
33
  constructor(document, url, schemaOrgData) {
27
34
  super(document, url, schemaOrgData);
35
+ this.inlineJsonCache = new Map();
28
36
  this.videoElement = document.querySelector('video');
29
37
  this.schemaOrgData = schemaOrgData;
30
38
  }
@@ -38,12 +46,103 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
38
46
  return true;
39
47
  }
40
48
  extract() {
41
- return this.buildResult();
49
+ return this.buildResult(this.extractTranscriptFromExistingDom());
42
50
  }
43
51
  async extractAsync() {
44
- const transcript = await this.fetchTranscript();
52
+ const transcript = this.extractTranscriptFromExistingDom()
53
+ || await this.fetchTranscript()
54
+ || await this.extractTranscriptFromOpenedDom();
45
55
  return this.buildResult(transcript);
46
56
  }
57
+ getCaptionTracks(playerData) {
58
+ const captionTracks = playerData?.captions?.playerCaptionsTracklistRenderer?.captionTracks;
59
+ return Array.isArray(captionTracks) ? captionTracks : [];
60
+ }
61
+ pickCaptionTrack(captionTracks) {
62
+ return captionTracks.find((track) => track.languageCode === 'en') || captionTracks[0];
63
+ }
64
+ getTrackDisplayName(track) {
65
+ return track?.name?.simpleText
66
+ || track?.name?.runs?.map((run) => run?.text || '').join('').trim()
67
+ || '';
68
+ }
69
+ normalizeLanguageLabel(label) {
70
+ return label
71
+ .replace(/\s*\([^)]*\)\s*/g, ' ')
72
+ .replace(/\s+/g, ' ')
73
+ .trim()
74
+ .toLocaleLowerCase();
75
+ }
76
+ getTranscriptLanguageCodeFromDom() {
77
+ const langButton = this.document.querySelector('ytd-engagement-panel-section-list-renderer[target-id="engagement-panel-searchable-transcript"] #footer yt-sort-filter-sub-menu-renderer yt-dropdown-menu button');
78
+ const selectedLabel = langButton?.textContent?.trim();
79
+ const captionTracks = this.getCaptionTracks(this.parseInlineJson('ytInitialPlayerResponse'));
80
+ const preferredTrack = this.pickCaptionTrack(captionTracks);
81
+ if (!selectedLabel) {
82
+ return preferredTrack?.languageCode || 'en';
83
+ }
84
+ const normalizedSelectedLabel = this.normalizeLanguageLabel(selectedLabel);
85
+ const matchingTrack = captionTracks.find((track) => this.normalizeLanguageLabel(this.getTrackDisplayName(track)) === normalizedSelectedLabel);
86
+ return matchingTrack?.languageCode || preferredTrack?.languageCode || 'en';
87
+ }
88
+ getInlineChapters() {
89
+ const inlineData = this.parseInlineJson('ytInitialData');
90
+ if (!inlineData)
91
+ return [];
92
+ const chapters = this.extractChaptersFromPlayerBar(inlineData);
93
+ if (chapters.length > 0)
94
+ return chapters;
95
+ return this.extractChaptersFromEngagementPanels(inlineData);
96
+ }
97
+ getTranscriptContainer() {
98
+ return this.document.querySelector('ytd-engagement-panel-section-list-renderer[target-id="engagement-panel-searchable-transcript"] #segments-container');
99
+ }
100
+ buildTranscriptFromContainer(container, chapters) {
101
+ if (container.children.length === 0)
102
+ return undefined;
103
+ const segmentElements = container.querySelectorAll('ytd-transcript-segment-renderer');
104
+ if (segmentElements.length === 0)
105
+ return undefined;
106
+ const segments = [];
107
+ for (const seg of Array.from(segmentElements)) {
108
+ const timestampEl = seg.querySelector('.segment-timestamp');
109
+ const textEl = seg.querySelector('.segment-text');
110
+ if (!timestampEl || !textEl)
111
+ continue;
112
+ const timeStr = (timestampEl.textContent || '').trim();
113
+ const text = (textEl.textContent || '').trim();
114
+ if (!text)
115
+ continue;
116
+ const seconds = this.parseTimestamp(timeStr);
117
+ if (seconds !== null) {
118
+ segments.push({ start: seconds, text });
119
+ }
120
+ }
121
+ if (segments.length === 0)
122
+ return undefined;
123
+ const groups = this.groupTranscriptSegments(segments);
124
+ const { html, text } = (0, transcript_1.buildTranscript)('youtube', groups, chapters);
125
+ return {
126
+ html,
127
+ text,
128
+ languageCode: this.getTranscriptLanguageCodeFromDom(),
129
+ };
130
+ }
131
+ extractTranscriptFromExistingDom() {
132
+ try {
133
+ const container = this.getTranscriptContainer();
134
+ if (!container)
135
+ return undefined;
136
+ return this.buildTranscriptFromContainer(container, this.getInlineChapters());
137
+ }
138
+ catch (error) {
139
+ console.error('YoutubeExtractor: failed to extract transcript from existing DOM', error);
140
+ return undefined;
141
+ }
142
+ }
143
+ canOpenTranscriptPanel() {
144
+ return typeof this.document.defaultView?.MutationObserver === 'function';
145
+ }
47
146
  buildResult(transcript) {
48
147
  const videoData = this.getVideoData();
49
148
  const channelName = this.getChannelName(videoData);
@@ -140,6 +239,9 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
140
239
  return fromMicroformat || '';
141
240
  }
142
241
  parseInlineJson(globalName) {
242
+ if (this.inlineJsonCache.has(globalName)) {
243
+ return this.inlineJsonCache.get(globalName);
244
+ }
143
245
  const scripts = Array.from(this.document.querySelectorAll('script'));
144
246
  for (const script of scripts) {
145
247
  const text = script.textContent || '';
@@ -159,7 +261,9 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
159
261
  if (depth === 0) {
160
262
  const jsonText = text.slice(startIndex, i + 1);
161
263
  try {
162
- return JSON.parse(jsonText);
264
+ const parsed = JSON.parse(jsonText);
265
+ this.inlineJsonCache.set(globalName, parsed);
266
+ return parsed;
163
267
  }
164
268
  catch (error) {
165
269
  console.error('YoutubeExtractor: failed to parse inline JSON', error);
@@ -183,13 +287,11 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
183
287
  ]);
184
288
  if (!playerData)
185
289
  return undefined;
186
- const captionTracks = playerData?.captions
187
- ?.playerCaptionsTracklistRenderer?.captionTracks;
188
- if (!Array.isArray(captionTracks) || captionTracks.length === 0)
290
+ const captionTracks = this.getCaptionTracks(playerData);
291
+ if (captionTracks.length === 0)
189
292
  return undefined;
190
293
  // Prefer English, fall back to first available track
191
- const track = captionTracks.find((t) => t.languageCode === 'en')
192
- || captionTracks[0];
294
+ const track = this.pickCaptionTrack(captionTracks);
193
295
  if (!track?.baseUrl)
194
296
  return undefined;
195
297
  // Validate URL to prevent SSRF in server-side contexts
@@ -206,7 +308,14 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
206
308
  });
207
309
  if (!response.ok)
208
310
  return undefined;
209
- const xml = await response.text();
311
+ let xml;
312
+ try {
313
+ xml = await response.text();
314
+ }
315
+ catch (textError) {
316
+ console.error('YoutubeExtractor: response.text() failed:', textError);
317
+ return undefined;
318
+ }
210
319
  if (!xml)
211
320
  return undefined;
212
321
  return this.parseTranscriptXml(xml, track.languageCode || 'en', chapters);
@@ -216,6 +325,48 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
216
325
  return undefined;
217
326
  }
218
327
  }
328
+ async waitForTranscriptContainer() {
329
+ return new Promise((resolve) => {
330
+ let attempts = 0;
331
+ const check = () => {
332
+ const container = this.getTranscriptContainer();
333
+ if (container && container.children.length > 0) {
334
+ resolve(container);
335
+ }
336
+ else if (attempts++ < 20) {
337
+ setTimeout(check, 250);
338
+ }
339
+ else {
340
+ resolve(null);
341
+ }
342
+ };
343
+ check();
344
+ });
345
+ }
346
+ /**
347
+ * Fallback: open YouTube's transcript panel and read segments from the DOM.
348
+ * Used when fetch-based extraction fails and the transcript is not already rendered.
349
+ */
350
+ async extractTranscriptFromOpenedDom() {
351
+ try {
352
+ if (!this.canOpenTranscriptPanel())
353
+ return undefined;
354
+ const transcriptButton = this.document.querySelector('ytd-video-description-transcript-section-renderer button');
355
+ if (!transcriptButton)
356
+ return undefined;
357
+ transcriptButton.click();
358
+ const container = await this.waitForTranscriptContainer();
359
+ if (!container)
360
+ return undefined;
361
+ const videoId = this.getVideoId();
362
+ const chapters = videoId ? await this.fetchChapters(videoId) : this.getInlineChapters();
363
+ return this.buildTranscriptFromContainer(container, chapters);
364
+ }
365
+ catch (error) {
366
+ console.error('YoutubeExtractor: failed to extract transcript from opened DOM', error);
367
+ return undefined;
368
+ }
369
+ }
219
370
  async fetchPlayerData(videoId) {
220
371
  try {
221
372
  const resp = await fetch(INNERTUBE_API_URL, {
@@ -229,15 +380,26 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
229
380
  videoId,
230
381
  })
231
382
  });
232
- if (!resp.ok)
233
- return undefined;
234
- return resp.json();
383
+ if (resp.ok) {
384
+ const data = await resp.json();
385
+ if (this.getCaptionTracks(data).length > 0) {
386
+ return data;
387
+ }
388
+ }
235
389
  }
236
390
  catch {
237
- return undefined;
391
+ // Fall back to inline page data below.
238
392
  }
393
+ const inlineData = this.parseInlineJson('ytInitialPlayerResponse');
394
+ if (this.getCaptionTracks(inlineData).length > 0) {
395
+ return inlineData;
396
+ }
397
+ return undefined;
239
398
  }
240
399
  async fetchChapters(videoId) {
400
+ const inlineChapters = this.getInlineChapters();
401
+ if (inlineChapters.length > 0)
402
+ return inlineChapters;
241
403
  try {
242
404
  const resp = await fetch(INNERTUBE_NEXT_URL, {
243
405
  method: 'POST',
@@ -397,7 +559,7 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
397
559
  }
398
560
  /**
399
561
  * Group segments by speaker turns, then by sentences within each turn.
400
- * Each ">>" marker starts a new speaker turn (with blank line separation).
562
+ * Each ">>" or "- " marker starts a new speaker turn (with blank line separation).
401
563
  * Within a turn, text is split at sentence boundaries for readability.
402
564
  * Tracks alternating speaker identity (0/1).
403
565
  */
@@ -409,7 +571,7 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
409
571
  let prevSegText = '';
410
572
  for (const seg of segments) {
411
573
  const isSpeakerChange = /^>>/.test(seg.text);
412
- const cleanText = seg.text.replace(/^>>\s*/, '');
574
+ const cleanText = seg.text.replace(/^>>\s*/, '').replace(/^-\s+/, '');
413
575
  // Only treat >> as a real speaker change if the previous segment
414
576
  // ended at a sentence boundary — otherwise it's a mid-sentence
415
577
  // false positive from auto-captions
@@ -435,10 +597,13 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
435
597
  // Split turns that start with a short affirmative (e.g. "Mhm.", "Yeah.")
436
598
  // followed by longer text — the affirmative is likely the other speaker
437
599
  this.splitAffirmativeTurns(turns);
438
- // Second pass: split each turn into sentence groups
600
+ // Second pass: split each turn into sentence groups, then merge longer
601
+ // contiguous runs so interview answers do not get a timestamp per sentence.
439
602
  const groups = [];
440
603
  for (const turn of turns) {
441
- const sentenceGroups = this.groupBySentence(turn.segments);
604
+ const sentenceGroups = turn.speaker === undefined
605
+ ? this.groupBySentence(turn.segments)
606
+ : this.mergeSentenceGroupsWithinTurn(this.groupBySentence(turn.segments));
442
607
  for (let i = 0; i < sentenceGroups.length; i++) {
443
608
  groups.push({
444
609
  ...sentenceGroups[i],
@@ -472,8 +637,8 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
472
637
  // response, not just the same speaker continuing after an affirmative
473
638
  const remainder = firstSeg.text.slice(match[0].length).trim();
474
639
  const restSegments = turn.segments.slice(1);
475
- const restWords = remainder.split(/\s+/).filter(w => w).length
476
- + restSegments.reduce((sum, s) => sum + s.text.split(/\s+/).length, 0);
640
+ const restWords = (0, utils_1.countWords)(remainder)
641
+ + restSegments.reduce((sum, s) => sum + (0, utils_1.countWords)(s.text), 0);
477
642
  if (restWords < 30)
478
643
  continue;
479
644
  // Split: keep affirmative in current turn, move rest to new turn with flipped speaker
@@ -497,10 +662,53 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
497
662
  i++; // skip the newly inserted rest turn
498
663
  }
499
664
  }
665
+ mergeSentenceGroupsWithinTurn(groups) {
666
+ if (groups.length <= 1)
667
+ return groups;
668
+ const merged = [];
669
+ let current = { ...groups[0] };
670
+ let currentIsFirstInTurn = true;
671
+ for (let i = 1; i < groups.length; i++) {
672
+ const next = groups[i];
673
+ if (this.shouldMergeSentenceGroups(current, next, currentIsFirstInTurn)) {
674
+ current.text = `${current.text} ${next.text}`;
675
+ continue;
676
+ }
677
+ merged.push(current);
678
+ current = { ...next };
679
+ currentIsFirstInTurn = false;
680
+ }
681
+ merged.push(current);
682
+ return merged;
683
+ }
684
+ shouldMergeSentenceGroups(current, next, currentIsFirstInTurn) {
685
+ const currentWords = (0, utils_1.countWords)(current.text);
686
+ const nextWords = (0, utils_1.countWords)(next.text);
687
+ if (this.isShortStandaloneUtterance(current.text, currentWords) || this.isShortStandaloneUtterance(next.text, nextWords)) {
688
+ return false;
689
+ }
690
+ if (currentIsFirstInTurn && currentWords < FIRST_GROUP_MERGE_MIN_WORDS) {
691
+ return false;
692
+ }
693
+ if (QUESTION_END.test(current.text) || QUESTION_END.test(next.text)) {
694
+ return false;
695
+ }
696
+ if (currentWords + nextWords > TURN_MERGE_MAX_WORDS) {
697
+ return false;
698
+ }
699
+ if (next.start - current.start > TURN_MERGE_MAX_SPAN_SECONDS) {
700
+ return false;
701
+ }
702
+ return true;
703
+ }
704
+ isShortStandaloneUtterance(text, words) {
705
+ const w = words ?? (0, utils_1.countWords)(text);
706
+ return w > 0 && w <= SHORT_UTTERANCE_MAX_WORDS && SENTENCE_END.test(text);
707
+ }
500
708
  /**
501
709
  * Group segments by sentence boundaries for transcripts without speaker markers.
502
710
  * Accumulates text until a segment ends with sentence-ending punctuation (.!?),
503
- * or until a time gap >5 seconds between segments.
711
+ * or until a very large time gap between segments.
504
712
  */
505
713
  groupBySentence(segments) {
506
714
  const groups = [];
@@ -518,8 +726,9 @@ class YoutubeExtractor extends _base_1.BaseExtractor {
518
726
  }
519
727
  };
520
728
  for (const seg of segments) {
521
- // Flush on a significant time gap (>5s between segments)
522
- if (buffer && seg.start - lastStart > 5) {
729
+ // YouTube often emits sparse caption windows 10-15s apart even when the
730
+ // sentence is still continuing, so only treat very large gaps as breaks.
731
+ if (buffer && seg.start - lastStart > TRANSCRIPT_GROUP_GAP_SECONDS) {
523
732
  flush();
524
733
  }
525
734
  if (!buffer) {
@@ -1 +1 @@
1
- {"version":3,"file":"youtube.js","sourceRoot":"","sources":["../../src/extractors/youtube.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"youtube.js","sourceRoot":"","sources":["../../src/extractors/youtube.ts"],"names":[],"mappings":"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"}