defuddle 0.11.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.
- package/README.md +49 -29
- package/dist/cli.js +15 -46
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts +9 -0
- package/dist/constants.js +33 -9
- package/dist/constants.js.map +1 -1
- package/dist/defuddle.d.ts +50 -2
- package/dist/defuddle.js +615 -238
- package/dist/defuddle.js.map +1 -1
- package/dist/elements/code.js +31 -9
- package/dist/elements/code.js.map +1 -1
- package/dist/elements/footnotes.js +2 -1
- package/dist/elements/footnotes.js.map +1 -1
- package/dist/elements/headings.js +42 -50
- package/dist/elements/headings.js.map +1 -1
- package/dist/extractor-registry.d.ts +1 -0
- package/dist/extractor-registry.js +3 -0
- package/dist/extractor-registry.js.map +1 -1
- package/dist/extractors/_base.d.ts +6 -0
- package/dist/extractors/_base.js +8 -0
- package/dist/extractors/_base.js.map +1 -1
- package/dist/extractors/github.d.ts +10 -2
- package/dist/extractors/github.js +158 -71
- package/dist/extractors/github.js.map +1 -1
- package/dist/extractors/hackernews.js +18 -72
- package/dist/extractors/hackernews.js.map +1 -1
- package/dist/extractors/reddit.d.ts +1 -2
- package/dist/extractors/reddit.js +41 -94
- package/dist/extractors/reddit.js.map +1 -1
- package/dist/extractors/x-oembed.d.ts +0 -1
- package/dist/extractors/x-oembed.js +20 -27
- package/dist/extractors/x-oembed.js.map +1 -1
- package/dist/extractors/youtube.d.ts +57 -0
- package/dist/extractors/youtube.js +619 -10
- package/dist/extractors/youtube.js.map +1 -1
- package/dist/index.full.js +1 -1
- package/dist/index.js +1 -1
- package/dist/markdown.js +5 -0
- package/dist/markdown.js.map +1 -1
- package/dist/metadata.d.ts +5 -0
- package/dist/metadata.js +28 -0
- package/dist/metadata.js.map +1 -1
- package/dist/node.d.ts +12 -5
- package/dist/node.js +53 -22
- package/dist/node.js.map +1 -1
- package/dist/scoring.d.ts +6 -1
- package/dist/scoring.js +69 -22
- package/dist/scoring.js.map +1 -1
- package/dist/standardize.js +152 -63
- package/dist/standardize.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/utils/comments.d.ts +44 -0
- package/dist/utils/comments.js +103 -0
- package/dist/utils/comments.js.map +1 -0
- package/dist/utils/dom.d.ts +9 -0
- package/dist/utils/dom.js +20 -0
- package/dist/utils/dom.js.map +1 -1
- package/dist/utils/linkedom-compat.d.ts +5 -0
- package/dist/utils/linkedom-compat.js +23 -0
- package/dist/utils/linkedom-compat.js.map +1 -0
- package/dist/utils/transcript.d.ts +37 -0
- package/dist/utils/transcript.js +61 -0
- package/dist/utils/transcript.js.map +1 -0
- package/dist/utils.d.ts +6 -0
- package/dist/utils.js +36 -0
- package/dist/utils.js.map +1 -1
- package/package.json +3 -4
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RedditExtractor = void 0;
|
|
4
4
|
const _base_1 = require("./_base");
|
|
5
5
|
const dom_1 = require("../utils/dom");
|
|
6
|
+
const comments_1 = require("../utils/comments");
|
|
6
7
|
class RedditExtractor extends _base_1.BaseExtractor {
|
|
7
8
|
constructor(document, url) {
|
|
8
9
|
super(document, url);
|
|
@@ -84,7 +85,8 @@ class RedditExtractor extends _base_1.BaseExtractor {
|
|
|
84
85
|
const postBodyEl = thingLink?.querySelector('.usertext-body .md');
|
|
85
86
|
const postBody = postBodyEl ? (0, dom_1.serializeHTML)(postBodyEl) : '';
|
|
86
87
|
const commentArea = root.querySelector('.commentarea .sitetable');
|
|
87
|
-
const
|
|
88
|
+
const commentData = commentArea ? this.collectOldRedditComments(commentArea) : [];
|
|
89
|
+
const comments = commentData.length > 0 ? (0, comments_1.buildCommentTree)(commentData) : '';
|
|
88
90
|
const contentHtml = this.createContentHtml(postBody, comments);
|
|
89
91
|
const description = this.createDescription(postBody);
|
|
90
92
|
return {
|
|
@@ -110,20 +112,7 @@ class RedditExtractor extends _base_1.BaseExtractor {
|
|
|
110
112
|
return textBody + mediaBody;
|
|
111
113
|
}
|
|
112
114
|
createContentHtml(postContent, comments) {
|
|
113
|
-
return
|
|
114
|
-
<div class="reddit-post">
|
|
115
|
-
<div class="post-content">
|
|
116
|
-
${postContent}
|
|
117
|
-
</div>
|
|
118
|
-
</div>
|
|
119
|
-
${comments ? `
|
|
120
|
-
<hr>
|
|
121
|
-
<h2>Comments</h2>
|
|
122
|
-
<div class="reddit-comments">
|
|
123
|
-
${comments}
|
|
124
|
-
</div>
|
|
125
|
-
` : ''}
|
|
126
|
-
`.trim();
|
|
115
|
+
return (0, comments_1.buildContentHtml)('reddit', postContent, comments);
|
|
127
116
|
}
|
|
128
117
|
extractComments() {
|
|
129
118
|
const comments = Array.from(this.document.querySelectorAll('shreddit-comment'));
|
|
@@ -149,43 +138,35 @@ class RedditExtractor extends _base_1.BaseExtractor {
|
|
|
149
138
|
.slice(0, 140)
|
|
150
139
|
.replace(/\s+/g, ' ') || '';
|
|
151
140
|
}
|
|
152
|
-
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
const childContainer = comment.querySelector('.child > .sitetable');
|
|
176
|
-
if (childContainer) {
|
|
177
|
-
const children = Array.from(childContainer.querySelectorAll(':scope > .thing.comment'));
|
|
178
|
-
for (const child of children) {
|
|
179
|
-
html += this.renderOldRedditComment(child);
|
|
141
|
+
collectOldRedditComments(container, depth = 0) {
|
|
142
|
+
const result = [];
|
|
143
|
+
const comments = Array.from(container.querySelectorAll(':scope > .thing.comment'));
|
|
144
|
+
for (const comment of comments) {
|
|
145
|
+
const author = comment.getAttribute('data-author') || '';
|
|
146
|
+
const permalink = comment.getAttribute('data-permalink') || '';
|
|
147
|
+
const score = comment.querySelector('.entry .tagline .score.unvoted')?.textContent?.trim() || '';
|
|
148
|
+
const timeEl = comment.querySelector('.entry .tagline time[datetime]');
|
|
149
|
+
const datetime = timeEl?.getAttribute('datetime') || '';
|
|
150
|
+
const date = datetime ? new Date(datetime).toISOString().split('T')[0] : '';
|
|
151
|
+
const bodyEl = comment.querySelector('.entry .usertext-body .md');
|
|
152
|
+
const body = bodyEl ? (0, dom_1.serializeHTML)(bodyEl) : '';
|
|
153
|
+
result.push({
|
|
154
|
+
author,
|
|
155
|
+
date,
|
|
156
|
+
content: body,
|
|
157
|
+
depth,
|
|
158
|
+
score: score || undefined,
|
|
159
|
+
url: permalink ? `https://reddit.com${permalink}` : undefined,
|
|
160
|
+
});
|
|
161
|
+
const childContainer = comment.querySelector('.child > .sitetable');
|
|
162
|
+
if (childContainer) {
|
|
163
|
+
result.push(...this.collectOldRedditComments(childContainer, depth + 1));
|
|
180
164
|
}
|
|
181
165
|
}
|
|
182
|
-
|
|
183
|
-
return html;
|
|
166
|
+
return result;
|
|
184
167
|
}
|
|
185
168
|
processComments(comments) {
|
|
186
|
-
|
|
187
|
-
let currentDepth = -1;
|
|
188
|
-
let blockquoteStack = []; // Keep track of open blockquotes at each depth
|
|
169
|
+
const commentData = [];
|
|
189
170
|
for (const comment of comments) {
|
|
190
171
|
const depth = parseInt(comment.getAttribute('depth') || '0');
|
|
191
172
|
const author = comment.getAttribute('author') || '';
|
|
@@ -193,54 +174,20 @@ class RedditExtractor extends _base_1.BaseExtractor {
|
|
|
193
174
|
const permalink = comment.getAttribute('permalink') || '';
|
|
194
175
|
const commentEl = comment.querySelector('[slot="comment"]');
|
|
195
176
|
const content = commentEl ? (0, dom_1.serializeHTML)(commentEl) : '';
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
177
|
+
const timestamp = comment.getAttribute('created')
|
|
178
|
+
|| comment.querySelector('time')?.getAttribute('datetime')
|
|
179
|
+
|| '';
|
|
199
180
|
const date = timestamp ? new Date(timestamp).toISOString().split('T')[0] : '';
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
blockquoteStack = [0];
|
|
209
|
-
currentDepth = 0;
|
|
210
|
-
}
|
|
211
|
-
// For nested comments
|
|
212
|
-
else {
|
|
213
|
-
// If we're moving back up the tree
|
|
214
|
-
if (depth < currentDepth) {
|
|
215
|
-
// Close blockquotes until we reach the current depth
|
|
216
|
-
while (blockquoteStack.length > 0 && blockquoteStack[blockquoteStack.length - 1] >= depth) {
|
|
217
|
-
html += '</blockquote>';
|
|
218
|
-
blockquoteStack.pop();
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
// If we're going deeper
|
|
222
|
-
else if (depth > currentDepth) {
|
|
223
|
-
html += '<blockquote>';
|
|
224
|
-
blockquoteStack.push(depth);
|
|
225
|
-
}
|
|
226
|
-
// If we're at the same depth, no need to close or open blockquotes
|
|
227
|
-
}
|
|
228
|
-
html += `<div class="comment">
|
|
229
|
-
<div class="comment-metadata">
|
|
230
|
-
<span class="comment-author"><strong>${author}</strong></span> •
|
|
231
|
-
<a href="https://reddit.com${permalink}" class="comment-link">${score} points</a> •
|
|
232
|
-
<span class="comment-date">${date}</span>
|
|
233
|
-
</div>
|
|
234
|
-
<div class="comment-content">${content}</div>
|
|
235
|
-
</div>`;
|
|
236
|
-
currentDepth = depth;
|
|
237
|
-
}
|
|
238
|
-
// Close any remaining blockquotes
|
|
239
|
-
while (blockquoteStack.length > 0) {
|
|
240
|
-
html += '</blockquote>';
|
|
241
|
-
blockquoteStack.pop();
|
|
181
|
+
commentData.push({
|
|
182
|
+
author,
|
|
183
|
+
date,
|
|
184
|
+
content,
|
|
185
|
+
depth,
|
|
186
|
+
score: `${score} points`,
|
|
187
|
+
url: permalink ? `https://reddit.com${permalink}` : undefined,
|
|
188
|
+
});
|
|
242
189
|
}
|
|
243
|
-
return
|
|
190
|
+
return (0, comments_1.buildCommentTree)(commentData);
|
|
244
191
|
}
|
|
245
192
|
}
|
|
246
193
|
exports.RedditExtractor = RedditExtractor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reddit.js","sourceRoot":"","sources":["../../src/extractors/reddit.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC,sCAAwD;
|
|
1
|
+
{"version":3,"file":"reddit.js","sourceRoot":"","sources":["../../src/extractors/reddit.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,10 +48,10 @@ class XOembedExtractor extends _base_1.BaseExtractor {
|
|
|
48
48
|
const dateLink = blockquote?.querySelector('a:last-child');
|
|
49
49
|
const dateText = dateLink?.textContent?.trim() || '';
|
|
50
50
|
const permalink = dateLink?.getAttribute('href') || this.url;
|
|
51
|
-
const escapedAuthorName =
|
|
52
|
-
const escapedHandle =
|
|
53
|
-
const escapedDateText =
|
|
54
|
-
const escapedPermalink =
|
|
51
|
+
const escapedAuthorName = (0, dom_1.escapeHtml)(data.author_name);
|
|
52
|
+
const escapedHandle = (0, dom_1.escapeHtml)(handle);
|
|
53
|
+
const escapedDateText = (0, dom_1.escapeHtml)(dateText);
|
|
54
|
+
const escapedPermalink = (0, dom_1.escapeHtml)(permalink);
|
|
55
55
|
const contentHtml = `
|
|
56
56
|
<div class="tweet-thread">
|
|
57
57
|
<div class="main-tweet">
|
|
@@ -170,11 +170,11 @@ class XOembedExtractor extends _base_1.BaseExtractor {
|
|
|
170
170
|
// Append media images
|
|
171
171
|
if (tweet.media?.photos) {
|
|
172
172
|
for (const photo of tweet.media.photos) {
|
|
173
|
-
htmlParts.push(`<img src="${
|
|
173
|
+
htmlParts.push(`<img src="${(0, dom_1.escapeHtml)(photo.url)}" alt="">`);
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
|
-
const handle =
|
|
177
|
-
const authorName =
|
|
176
|
+
const handle = (0, dom_1.escapeHtml)(`@${tweet.author.screen_name}`);
|
|
177
|
+
const authorName = (0, dom_1.escapeHtml)(tweet.author.name);
|
|
178
178
|
return `<div class="tweet-thread"><div class="main-tweet"><div class="tweet">` +
|
|
179
179
|
`<div class="tweet-header"><span class="tweet-author"><strong>${authorName}</strong> <span class="tweet-handle">${handle}</span></span></div>` +
|
|
180
180
|
`<div class="tweet-text">${htmlParts.join('\n')}</div>` +
|
|
@@ -182,7 +182,7 @@ class XOembedExtractor extends _base_1.BaseExtractor {
|
|
|
182
182
|
}
|
|
183
183
|
applyMarkers(text, markers) {
|
|
184
184
|
if (markers.length === 0) {
|
|
185
|
-
return
|
|
185
|
+
return (0, dom_1.escapeHtml)(text);
|
|
186
186
|
}
|
|
187
187
|
markers.sort((a, b) => {
|
|
188
188
|
if (a.offset !== b.offset)
|
|
@@ -197,13 +197,13 @@ class XOembedExtractor extends _base_1.BaseExtractor {
|
|
|
197
197
|
let pos = 0;
|
|
198
198
|
for (const marker of markers) {
|
|
199
199
|
if (marker.offset > pos) {
|
|
200
|
-
result +=
|
|
200
|
+
result += (0, dom_1.escapeHtml)(text.slice(pos, marker.offset));
|
|
201
201
|
}
|
|
202
202
|
result += marker.tag;
|
|
203
203
|
pos = marker.offset;
|
|
204
204
|
}
|
|
205
205
|
if (pos < text.length) {
|
|
206
|
-
result +=
|
|
206
|
+
result += (0, dom_1.escapeHtml)(text.slice(pos));
|
|
207
207
|
}
|
|
208
208
|
return result;
|
|
209
209
|
}
|
|
@@ -220,12 +220,12 @@ class XOembedExtractor extends _base_1.BaseExtractor {
|
|
|
220
220
|
markers.push({ offset: relEnd, type: 'close', tag: '</em>' });
|
|
221
221
|
}
|
|
222
222
|
else if (facet.type === 'mention' && facet.text) {
|
|
223
|
-
const url = `https://x.com/${
|
|
223
|
+
const url = `https://x.com/${(0, dom_1.escapeHtml)(facet.text)}`;
|
|
224
224
|
markers.push({ offset: relStart, type: 'open', tag: `<a href="${url}">` });
|
|
225
225
|
markers.push({ offset: relEnd, type: 'close', tag: '</a>' });
|
|
226
226
|
}
|
|
227
227
|
else if (facet.type === 'url' && facet.original) {
|
|
228
|
-
const url =
|
|
228
|
+
const url = (0, dom_1.escapeHtml)(facet.original);
|
|
229
229
|
markers.push({ offset: relStart, type: 'open', tag: `<a href="${url}">` });
|
|
230
230
|
markers.push({ offset: relEnd, type: 'close', tag: '</a>' });
|
|
231
231
|
}
|
|
@@ -236,7 +236,7 @@ class XOembedExtractor extends _base_1.BaseExtractor {
|
|
|
236
236
|
const parts = [];
|
|
237
237
|
// Add cover image if available
|
|
238
238
|
if (coverMedia?.media_info?.original_img_url) {
|
|
239
|
-
parts.push(`<img src="${
|
|
239
|
+
parts.push(`<img src="${(0, dom_1.escapeHtml)(coverMedia.media_info.original_img_url)}" alt="Cover image">`);
|
|
240
240
|
}
|
|
241
241
|
let i = 0;
|
|
242
242
|
while (i < blocks.length) {
|
|
@@ -290,7 +290,7 @@ class XOembedExtractor extends _base_1.BaseExtractor {
|
|
|
290
290
|
case 'MEDIA': {
|
|
291
291
|
const caption = entity.data.caption;
|
|
292
292
|
if (caption) {
|
|
293
|
-
return `<figure><figcaption>${
|
|
293
|
+
return `<figure><figcaption>${(0, dom_1.escapeHtml)(caption)}</figcaption></figure>`;
|
|
294
294
|
}
|
|
295
295
|
return '';
|
|
296
296
|
}
|
|
@@ -301,10 +301,10 @@ class XOembedExtractor extends _base_1.BaseExtractor {
|
|
|
301
301
|
if (codeMatch) {
|
|
302
302
|
const lang = codeMatch[1];
|
|
303
303
|
const code = codeMatch[2];
|
|
304
|
-
const langAttr = lang ? ` class="language-${
|
|
305
|
-
return `<pre><code${langAttr}>${
|
|
304
|
+
const langAttr = lang ? ` class="language-${(0, dom_1.escapeHtml)(lang)}" data-lang="${(0, dom_1.escapeHtml)(lang)}"` : '';
|
|
305
|
+
return `<pre><code${langAttr}>${(0, dom_1.escapeHtml)(code)}</code></pre>`;
|
|
306
306
|
}
|
|
307
|
-
return `<pre><code>${
|
|
307
|
+
return `<pre><code>${(0, dom_1.escapeHtml)(markdown)}</code></pre>`;
|
|
308
308
|
}
|
|
309
309
|
default:
|
|
310
310
|
return '';
|
|
@@ -324,34 +324,27 @@ class XOembedExtractor extends _base_1.BaseExtractor {
|
|
|
324
324
|
for (const range of block.entityRanges) {
|
|
325
325
|
const entityEntry = entityMap.find(e => e.key === String(range.key));
|
|
326
326
|
if (entityEntry?.value.type === 'LINK' && entityEntry.value.data.url) {
|
|
327
|
-
const url =
|
|
327
|
+
const url = (0, dom_1.escapeHtml)(entityEntry.value.data.url);
|
|
328
328
|
markers.push({ offset: range.offset, type: 'open', tag: `<a href="${url}">` });
|
|
329
329
|
markers.push({ offset: range.offset + range.length, type: 'close', tag: '</a>' });
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
332
|
if (block.data?.mentions) {
|
|
333
333
|
for (const mention of block.data.mentions) {
|
|
334
|
-
const url = `https://x.com/${
|
|
334
|
+
const url = `https://x.com/${(0, dom_1.escapeHtml)(mention.text)}`;
|
|
335
335
|
markers.push({ offset: mention.fromIndex, type: 'open', tag: `<a href="${url}">` });
|
|
336
336
|
markers.push({ offset: mention.toIndex, type: 'close', tag: '</a>' });
|
|
337
337
|
}
|
|
338
338
|
}
|
|
339
339
|
if (block.data?.urls) {
|
|
340
340
|
for (const urlData of block.data.urls) {
|
|
341
|
-
const url =
|
|
341
|
+
const url = (0, dom_1.escapeHtml)(urlData.text);
|
|
342
342
|
markers.push({ offset: urlData.fromIndex, type: 'open', tag: `<a href="${url}">` });
|
|
343
343
|
markers.push({ offset: urlData.toIndex, type: 'close', tag: '</a>' });
|
|
344
344
|
}
|
|
345
345
|
}
|
|
346
346
|
return this.applyMarkers(text, markers);
|
|
347
347
|
}
|
|
348
|
-
escapeHtml(text) {
|
|
349
|
-
return text
|
|
350
|
-
.replace(/&/g, '&')
|
|
351
|
-
.replace(/</g, '<')
|
|
352
|
-
.replace(/>/g, '>')
|
|
353
|
-
.replace(/"/g, '"');
|
|
354
|
-
}
|
|
355
348
|
}
|
|
356
349
|
exports.XOembedExtractor = XOembedExtractor;
|
|
357
350
|
//# sourceMappingURL=x-oembed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-oembed.js","sourceRoot":"","sources":["../../src/extractors/x-oembed.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"x-oembed.js","sourceRoot":"","sources":["../../src/extractors/x-oembed.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,25 @@ import { BaseExtractor } from './_base';
|
|
|
2
2
|
import { ExtractorResult } from '../types/extractors';
|
|
3
3
|
export declare class YoutubeExtractor extends BaseExtractor {
|
|
4
4
|
private videoElement;
|
|
5
|
+
private inlineJsonCache;
|
|
5
6
|
protected schemaOrgData: any;
|
|
6
7
|
constructor(document: Document, url: string, schemaOrgData?: any);
|
|
7
8
|
canExtract(): boolean;
|
|
9
|
+
canExtractAsync(): boolean;
|
|
10
|
+
prefersAsync(): boolean;
|
|
8
11
|
extract(): ExtractorResult;
|
|
12
|
+
extractAsync(): Promise<ExtractorResult>;
|
|
13
|
+
private getCaptionTracks;
|
|
14
|
+
private pickCaptionTrack;
|
|
15
|
+
private getTrackDisplayName;
|
|
16
|
+
private normalizeLanguageLabel;
|
|
17
|
+
private getTranscriptLanguageCodeFromDom;
|
|
18
|
+
private getInlineChapters;
|
|
19
|
+
private getTranscriptContainer;
|
|
20
|
+
private buildTranscriptFromContainer;
|
|
21
|
+
private extractTranscriptFromExistingDom;
|
|
22
|
+
private canOpenTranscriptPanel;
|
|
23
|
+
private buildResult;
|
|
9
24
|
private formatDescription;
|
|
10
25
|
private getVideoData;
|
|
11
26
|
private getChannelName;
|
|
@@ -13,5 +28,47 @@ export declare class YoutubeExtractor extends BaseExtractor {
|
|
|
13
28
|
private getChannelNameFromMicrodata;
|
|
14
29
|
private getChannelNameFromPlayerResponse;
|
|
15
30
|
private parseInlineJson;
|
|
31
|
+
private fetchTranscript;
|
|
32
|
+
private waitForTranscriptContainer;
|
|
33
|
+
/**
|
|
34
|
+
* Fallback: open YouTube's transcript panel and read segments from the DOM.
|
|
35
|
+
* Used when fetch-based extraction fails and the transcript is not already rendered.
|
|
36
|
+
*/
|
|
37
|
+
private extractTranscriptFromOpenedDom;
|
|
38
|
+
private fetchPlayerData;
|
|
39
|
+
private fetchChapters;
|
|
40
|
+
private extractChaptersFromPlayerBar;
|
|
41
|
+
private extractChaptersFromEngagementPanels;
|
|
42
|
+
private parseTimestamp;
|
|
43
|
+
private parseTranscriptXml;
|
|
44
|
+
private decodeEntities;
|
|
16
45
|
private getVideoId;
|
|
46
|
+
/**
|
|
47
|
+
* Group raw transcript segments into readable blocks.
|
|
48
|
+
* If speaker markers (>>) are present, groups by speaker turn.
|
|
49
|
+
* Otherwise, groups by sentence boundaries.
|
|
50
|
+
*/
|
|
51
|
+
private groupTranscriptSegments;
|
|
52
|
+
/**
|
|
53
|
+
* Group segments by speaker turns, then by sentences within each turn.
|
|
54
|
+
* Each ">>" or "- " marker starts a new speaker turn (with blank line separation).
|
|
55
|
+
* Within a turn, text is split at sentence boundaries for readability.
|
|
56
|
+
* Tracks alternating speaker identity (0/1).
|
|
57
|
+
*/
|
|
58
|
+
private groupBySpeaker;
|
|
59
|
+
/**
|
|
60
|
+
* Split turns that start with a short affirmative response (e.g. "Mhm.", "Yeah.")
|
|
61
|
+
* followed by longer content. The affirmative belongs to the current speaker,
|
|
62
|
+
* but the rest is likely the other speaker (missed diarization in auto-captions).
|
|
63
|
+
*/
|
|
64
|
+
private splitAffirmativeTurns;
|
|
65
|
+
private mergeSentenceGroupsWithinTurn;
|
|
66
|
+
private shouldMergeSentenceGroups;
|
|
67
|
+
private isShortStandaloneUtterance;
|
|
68
|
+
/**
|
|
69
|
+
* Group segments by sentence boundaries for transcripts without speaker markers.
|
|
70
|
+
* Accumulates text until a segment ends with sentence-ending punctuation (.!?),
|
|
71
|
+
* or until a very large time gap between segments.
|
|
72
|
+
*/
|
|
73
|
+
private groupBySentence;
|
|
17
74
|
}
|