@steipete/summarize-core 0.9.0 → 0.11.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 +0 -1
- package/dist/esm/content/index.js +5 -5
- package/dist/esm/content/index.js.map +1 -1
- package/dist/esm/content/link-preview/client.js +23 -8
- package/dist/esm/content/link-preview/client.js.map +1 -1
- package/dist/esm/content/link-preview/content/article.js +84 -83
- package/dist/esm/content/link-preview/content/article.js.map +1 -1
- package/dist/esm/content/link-preview/content/cleaner.js +23 -20
- package/dist/esm/content/link-preview/content/cleaner.js.map +1 -1
- package/dist/esm/content/link-preview/content/constants.js.map +1 -1
- package/dist/esm/content/link-preview/content/fetcher.js +46 -40
- package/dist/esm/content/link-preview/content/fetcher.js.map +1 -1
- package/dist/esm/content/link-preview/content/firecrawl.js +18 -17
- package/dist/esm/content/link-preview/content/firecrawl.js.map +1 -1
- package/dist/esm/content/link-preview/content/html.js +31 -28
- package/dist/esm/content/link-preview/content/html.js.map +1 -1
- package/dist/esm/content/link-preview/content/index.js +173 -90
- package/dist/esm/content/link-preview/content/index.js.map +1 -1
- package/dist/esm/content/link-preview/content/jsonld.js +12 -12
- package/dist/esm/content/link-preview/content/jsonld.js.map +1 -1
- package/dist/esm/content/link-preview/content/parsers.js +20 -20
- package/dist/esm/content/link-preview/content/parsers.js.map +1 -1
- package/dist/esm/content/link-preview/content/podcast-utils.js +34 -34
- package/dist/esm/content/link-preview/content/podcast-utils.js.map +1 -1
- package/dist/esm/content/link-preview/content/readability.js +16 -15
- package/dist/esm/content/link-preview/content/readability.js.map +1 -1
- package/dist/esm/content/link-preview/content/twitter-utils.js +24 -11
- package/dist/esm/content/link-preview/content/twitter-utils.js.map +1 -1
- package/dist/esm/content/link-preview/content/types.js +1 -1
- package/dist/esm/content/link-preview/content/types.js.map +1 -1
- package/dist/esm/content/link-preview/content/utils.js +30 -22
- package/dist/esm/content/link-preview/content/utils.js.map +1 -1
- package/dist/esm/content/link-preview/content/video.js +19 -19
- package/dist/esm/content/link-preview/content/video.js.map +1 -1
- package/dist/esm/content/link-preview/content/visibility.js +121 -0
- package/dist/esm/content/link-preview/content/visibility.js.map +1 -0
- package/dist/esm/content/link-preview/content/youtube.js +10 -10
- package/dist/esm/content/link-preview/content/youtube.js.map +1 -1
- package/dist/esm/content/link-preview/deps.js +16 -16
- package/dist/esm/content/link-preview/deps.js.map +1 -1
- package/dist/esm/content/link-preview/fetch-with-timeout.js +4 -4
- package/dist/esm/content/link-preview/fetch-with-timeout.js.map +1 -1
- package/dist/esm/content/link-preview/types.js +1 -1
- package/dist/esm/content/link-preview/types.js.map +1 -1
- package/dist/esm/content/transcript/cache.js +47 -22
- package/dist/esm/content/transcript/cache.js.map +1 -1
- package/dist/esm/content/transcript/index.js +71 -25
- package/dist/esm/content/transcript/index.js.map +1 -1
- package/dist/esm/content/transcript/normalize.js +10 -10
- package/dist/esm/content/transcript/normalize.js.map +1 -1
- package/dist/esm/content/transcript/parse.js +125 -13
- package/dist/esm/content/transcript/parse.js.map +1 -1
- package/dist/esm/content/transcript/providers/generic.js +112 -81
- package/dist/esm/content/transcript/providers/generic.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/apple-flow.js +38 -36
- package/dist/esm/content/transcript/providers/podcast/apple-flow.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/apple.js +5 -5
- package/dist/esm/content/transcript/providers/podcast/apple.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/constants.js +2 -2
- package/dist/esm/content/transcript/providers/podcast/constants.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/itunes.js +44 -42
- package/dist/esm/content/transcript/providers/podcast/itunes.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/json.js +4 -4
- package/dist/esm/content/transcript/providers/podcast/json.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/media.js +66 -56
- package/dist/esm/content/transcript/providers/podcast/media.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/results.js +2 -2
- package/dist/esm/content/transcript/providers/podcast/results.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/rss.js +42 -28
- package/dist/esm/content/transcript/providers/podcast/rss.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/spotify-flow.js +39 -38
- package/dist/esm/content/transcript/providers/podcast/spotify-flow.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast/spotify.js +32 -32
- package/dist/esm/content/transcript/providers/podcast/spotify.js.map +1 -1
- package/dist/esm/content/transcript/providers/podcast.js +52 -43
- package/dist/esm/content/transcript/providers/podcast.js.map +1 -1
- package/dist/esm/content/transcript/providers/transcription-start.js +78 -0
- package/dist/esm/content/transcript/providers/transcription-start.js.map +1 -0
- package/dist/esm/content/transcript/providers/youtube/api.js +74 -57
- package/dist/esm/content/transcript/providers/youtube/api.js.map +1 -1
- package/dist/esm/content/transcript/providers/youtube/apify.js +7 -7
- package/dist/esm/content/transcript/providers/youtube/apify.js.map +1 -1
- package/dist/esm/content/transcript/providers/youtube/captions.js +112 -74
- package/dist/esm/content/transcript/providers/youtube/captions.js.map +1 -1
- package/dist/esm/content/transcript/providers/youtube/yt-dlp.js +161 -101
- package/dist/esm/content/transcript/providers/youtube/yt-dlp.js.map +1 -1
- package/dist/esm/content/transcript/providers/youtube.js +97 -80
- package/dist/esm/content/transcript/providers/youtube.js.map +1 -1
- package/dist/esm/content/transcript/timestamps.js +79 -0
- package/dist/esm/content/transcript/timestamps.js.map +1 -0
- package/dist/esm/content/transcript/transcription-config.js +14 -0
- package/dist/esm/content/transcript/transcription-config.js.map +1 -0
- package/dist/esm/content/transcript/utils.js +35 -35
- package/dist/esm/content/transcript/utils.js.map +1 -1
- package/dist/esm/content/url.js +59 -28
- package/dist/esm/content/url.js.map +1 -1
- package/dist/esm/index.js +4 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/language.js +77 -77
- package/dist/esm/language.js.map +1 -1
- package/dist/esm/openai/base-url.js +35 -0
- package/dist/esm/openai/base-url.js.map +1 -0
- package/dist/esm/processes.js +121 -0
- package/dist/esm/processes.js.map +1 -0
- package/dist/esm/prompts/cli.js +17 -17
- package/dist/esm/prompts/cli.js.map +1 -1
- package/dist/esm/prompts/file.js +56 -40
- package/dist/esm/prompts/file.js.map +1 -1
- package/dist/esm/prompts/format.js +2 -2
- package/dist/esm/prompts/format.js.map +1 -1
- package/dist/esm/prompts/index.js +5 -4
- package/dist/esm/prompts/index.js.map +1 -1
- package/dist/esm/prompts/link-summary.js +96 -46
- package/dist/esm/prompts/link-summary.js.map +1 -1
- package/dist/esm/prompts/summary-lengths.js +10 -10
- package/dist/esm/prompts/summary-lengths.js.map +1 -1
- package/dist/esm/prompts/summary-system.js +13 -0
- package/dist/esm/prompts/summary-system.js.map +1 -0
- package/dist/esm/shared/contracts.js +1 -1
- package/dist/esm/shared/contracts.js.map +1 -1
- package/dist/esm/transcription/onnx-cli.js +319 -0
- package/dist/esm/transcription/onnx-cli.js.map +1 -0
- package/dist/esm/transcription/whisper/constants.js +3 -3
- package/dist/esm/transcription/whisper/constants.js.map +1 -1
- package/dist/esm/transcription/whisper/core.js +209 -52
- package/dist/esm/transcription/whisper/core.js.map +1 -1
- package/dist/esm/transcription/whisper/fal.js +14 -14
- package/dist/esm/transcription/whisper/fal.js.map +1 -1
- package/dist/esm/transcription/whisper/ffmpeg.js +134 -82
- package/dist/esm/transcription/whisper/ffmpeg.js.map +1 -1
- package/dist/esm/transcription/whisper/groq.js +46 -0
- package/dist/esm/transcription/whisper/groq.js.map +1 -0
- package/dist/esm/transcription/whisper/openai.js +19 -13
- package/dist/esm/transcription/whisper/openai.js.map +1 -1
- package/dist/esm/transcription/whisper/utils.js +19 -19
- package/dist/esm/transcription/whisper/utils.js.map +1 -1
- package/dist/esm/transcription/whisper/whisper-cpp.js +68 -58
- package/dist/esm/transcription/whisper/whisper-cpp.js.map +1 -1
- package/dist/esm/transcription/whisper.js +4 -4
- package/dist/esm/transcription/whisper.js.map +1 -1
- package/dist/types/content/cache/types.d.ts +25 -1
- package/dist/types/content/index.d.ts +7 -7
- package/dist/types/content/link-preview/client.d.ts +9 -4
- package/dist/types/content/link-preview/content/cleaner.d.ts +1 -0
- package/dist/types/content/link-preview/content/fetcher.d.ts +2 -2
- package/dist/types/content/link-preview/content/firecrawl.d.ts +8 -7
- package/dist/types/content/link-preview/content/html.d.ts +9 -8
- package/dist/types/content/link-preview/content/index.d.ts +3 -3
- package/dist/types/content/link-preview/content/twitter-utils.d.ts +1 -0
- package/dist/types/content/link-preview/content/types.d.ts +13 -8
- package/dist/types/content/link-preview/content/utils.d.ts +3 -3
- package/dist/types/content/link-preview/content/video.d.ts +1 -1
- package/dist/types/content/link-preview/content/visibility.d.ts +1 -0
- package/dist/types/content/link-preview/deps.d.ts +44 -28
- package/dist/types/content/link-preview/types.d.ts +10 -4
- package/dist/types/content/transcript/cache.d.ts +9 -6
- package/dist/types/content/transcript/index.d.ts +9 -6
- package/dist/types/content/transcript/parse.d.ts +7 -0
- package/dist/types/content/transcript/providers/generic.d.ts +1 -1
- package/dist/types/content/transcript/providers/podcast/apple-flow.d.ts +2 -2
- package/dist/types/content/transcript/providers/podcast/flow-context.d.ts +4 -4
- package/dist/types/content/transcript/providers/podcast/media.d.ts +10 -6
- package/dist/types/content/transcript/providers/podcast/results.d.ts +3 -3
- package/dist/types/content/transcript/providers/podcast/rss.d.ts +2 -0
- package/dist/types/content/transcript/providers/podcast/spotify-flow.d.ts +2 -2
- package/dist/types/content/transcript/providers/podcast/spotify.d.ts +2 -2
- package/dist/types/content/transcript/providers/podcast.d.ts +5 -5
- package/dist/types/content/transcript/providers/transcription-start.d.ts +32 -0
- package/dist/types/content/transcript/providers/youtube/api.d.ts +7 -2
- package/dist/types/content/transcript/providers/youtube/captions.d.ts +6 -1
- package/dist/types/content/transcript/providers/youtube/yt-dlp.d.ts +13 -6
- package/dist/types/content/transcript/providers/youtube.d.ts +1 -1
- package/dist/types/content/transcript/timestamps.d.ts +5 -0
- package/dist/types/content/transcript/transcription-config.d.ts +15 -0
- package/dist/types/content/transcript/types.d.ts +15 -7
- package/dist/types/content/transcript/utils.d.ts +1 -1
- package/dist/types/content/url.d.ts +5 -3
- package/dist/types/index.d.ts +5 -4
- package/dist/types/language.d.ts +4 -4
- package/dist/types/openai/base-url.d.ts +14 -0
- package/dist/types/processes.d.ts +50 -0
- package/dist/types/prompts/cli.d.ts +3 -3
- package/dist/types/prompts/file.d.ts +2 -2
- package/dist/types/prompts/index.d.ts +6 -5
- package/dist/types/prompts/link-summary.d.ts +9 -4
- package/dist/types/prompts/summary-lengths.d.ts +1 -1
- package/dist/types/prompts/summary-system.d.ts +1 -0
- package/dist/types/transcription/onnx-cli.d.ts +25 -0
- package/dist/types/transcription/whisper/core.d.ts +10 -3
- package/dist/types/transcription/whisper/ffmpeg.d.ts +5 -0
- package/dist/types/transcription/whisper/groq.d.ts +2 -0
- package/dist/types/transcription/whisper/openai.d.ts +6 -1
- package/dist/types/transcription/whisper/types.d.ts +1 -1
- package/dist/types/transcription/whisper/whisper-cpp.d.ts +1 -1
- package/dist/types/transcription/whisper.d.ts +5 -5
- package/package.json +24 -18
- package/LICENSE +0 -21
|
@@ -1,78 +1,90 @@
|
|
|
1
|
-
import { resolveTranscriptForLink } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
1
|
+
import { resolveTranscriptForLink } from "../../transcript/index.js";
|
|
2
|
+
import { resolveTranscriptionConfig } from "../../transcript/transcription-config.js";
|
|
3
|
+
import { isDirectMediaUrl, isYouTubeUrl } from "../../url.js";
|
|
4
|
+
import { normalizeForPrompt } from "./cleaner.js";
|
|
5
|
+
import { MIN_READABILITY_CONTENT_CHARACTERS } from "./constants.js";
|
|
6
|
+
import { fetchHtmlDocument, fetchWithFirecrawl } from "./fetcher.js";
|
|
7
|
+
import { buildResultFromFirecrawl, shouldFallbackToFirecrawl } from "./firecrawl.js";
|
|
8
|
+
import { buildResultFromHtmlDocument } from "./html.js";
|
|
9
|
+
import { extractApplePodcastIds, extractSpotifyEpisodeId } from "./podcast-utils.js";
|
|
10
|
+
import { extractReadabilityFromHtml } from "./readability.js";
|
|
11
|
+
import { isAnubisHtml, isBlockedTwitterContent, isTwitterBroadcastUrl, isTwitterStatusUrl, toNitterUrls, } from "./twitter-utils.js";
|
|
12
|
+
import { appendNote, ensureTranscriptDiagnostics, finalizeExtractedLinkContent, resolveCacheMode, resolveFirecrawlMode, resolveMaxCharacters, resolveTimeoutMs, selectBaseContent, } from "./utils.js";
|
|
12
13
|
const MAX_TWITTER_TEXT_FOR_TRANSCRIPT = 500;
|
|
13
|
-
const buildSkippedTwitterTranscript = (cacheMode,
|
|
14
|
+
const buildSkippedTwitterTranscript = (cacheMode, notes) => ({
|
|
14
15
|
text: null,
|
|
15
16
|
source: null,
|
|
16
17
|
diagnostics: {
|
|
17
18
|
cacheMode,
|
|
18
|
-
cacheStatus: cacheMode ===
|
|
19
|
+
cacheStatus: cacheMode === "bypass" ? "bypassed" : "unknown",
|
|
19
20
|
textProvided: false,
|
|
20
21
|
provider: null,
|
|
21
22
|
attemptedProviders: [],
|
|
22
|
-
notes
|
|
23
|
+
notes,
|
|
23
24
|
},
|
|
24
25
|
});
|
|
25
26
|
export async function fetchLinkContent(url, options, deps) {
|
|
27
|
+
const transcription = resolveTranscriptionConfig({
|
|
28
|
+
env: deps.env,
|
|
29
|
+
transcription: deps.transcription ?? null,
|
|
30
|
+
falApiKey: deps.falApiKey,
|
|
31
|
+
groqApiKey: deps.groqApiKey,
|
|
32
|
+
openaiApiKey: deps.openaiApiKey,
|
|
33
|
+
});
|
|
26
34
|
const timeoutMs = resolveTimeoutMs(options);
|
|
27
35
|
const cacheMode = resolveCacheMode(options);
|
|
28
36
|
const maxCharacters = resolveMaxCharacters(options);
|
|
29
|
-
const youtubeTranscriptMode = options?.youtubeTranscript ??
|
|
30
|
-
const mediaTranscriptMode = options?.mediaTranscript ??
|
|
37
|
+
const youtubeTranscriptMode = options?.youtubeTranscript ?? "auto";
|
|
38
|
+
const mediaTranscriptMode = options?.mediaTranscript ?? "auto";
|
|
39
|
+
const transcriptTimestamps = options?.transcriptTimestamps ?? false;
|
|
31
40
|
const firecrawlMode = resolveFirecrawlMode(options);
|
|
32
|
-
const markdownRequested = (options?.format ??
|
|
33
|
-
const markdownMode = options?.markdownMode ??
|
|
34
|
-
const
|
|
41
|
+
const markdownRequested = (options?.format ?? "text") === "markdown";
|
|
42
|
+
const markdownMode = options?.markdownMode ?? "auto";
|
|
43
|
+
const fileMtime = options?.fileMtime ?? null;
|
|
44
|
+
const canUseFirecrawl = firecrawlMode !== "off" && deps.scrapeWithFirecrawl !== null && !isYouTubeUrl(url);
|
|
35
45
|
const spotifyEpisodeId = extractSpotifyEpisodeId(url);
|
|
36
46
|
if (spotifyEpisodeId) {
|
|
37
|
-
if (!
|
|
38
|
-
throw new Error(
|
|
47
|
+
if (!transcription.openaiApiKey && !transcription.falApiKey) {
|
|
48
|
+
throw new Error("Spotify episode transcription requires OPENAI_API_KEY or FAL_KEY (Whisper); otherwise you may only get a captcha/recaptcha HTML page.");
|
|
39
49
|
}
|
|
40
50
|
const transcriptResolution = await resolveTranscriptForLink(url, null, deps, {
|
|
41
51
|
youtubeTranscriptMode,
|
|
42
52
|
mediaTranscriptMode,
|
|
53
|
+
transcriptTimestamps,
|
|
43
54
|
cacheMode,
|
|
55
|
+
fileMtime,
|
|
44
56
|
});
|
|
45
57
|
if (!transcriptResolution.text) {
|
|
46
58
|
const notes = transcriptResolution.diagnostics?.notes;
|
|
47
|
-
const suffix = notes ? ` (${notes})` :
|
|
59
|
+
const suffix = notes ? ` (${notes})` : "";
|
|
48
60
|
throw new Error(`Failed to transcribe Spotify episode${suffix}`);
|
|
49
61
|
}
|
|
50
|
-
const transcriptDiagnostics = ensureTranscriptDiagnostics(transcriptResolution, cacheMode ??
|
|
51
|
-
transcriptDiagnostics.notes = appendNote(transcriptDiagnostics.notes,
|
|
62
|
+
const transcriptDiagnostics = ensureTranscriptDiagnostics(transcriptResolution, cacheMode ?? "default");
|
|
63
|
+
transcriptDiagnostics.notes = appendNote(transcriptDiagnostics.notes, "Spotify episode: skipped HTML fetch to avoid captcha pages");
|
|
52
64
|
return finalizeExtractedLinkContent({
|
|
53
65
|
url,
|
|
54
|
-
baseContent: selectBaseContent(
|
|
66
|
+
baseContent: selectBaseContent("", transcriptResolution.text, transcriptResolution.segments),
|
|
55
67
|
maxCharacters,
|
|
56
68
|
title: null,
|
|
57
69
|
description: null,
|
|
58
|
-
siteName:
|
|
70
|
+
siteName: "Spotify",
|
|
59
71
|
transcriptResolution,
|
|
60
72
|
video: null,
|
|
61
73
|
isVideoOnly: false,
|
|
62
74
|
diagnostics: {
|
|
63
|
-
strategy:
|
|
75
|
+
strategy: "html",
|
|
64
76
|
firecrawl: {
|
|
65
77
|
attempted: false,
|
|
66
78
|
used: false,
|
|
67
79
|
cacheMode,
|
|
68
|
-
cacheStatus: cacheMode ===
|
|
69
|
-
notes:
|
|
80
|
+
cacheStatus: cacheMode === "bypass" ? "bypassed" : "unknown",
|
|
81
|
+
notes: "Spotify short-circuit skipped HTML/Firecrawl",
|
|
70
82
|
},
|
|
71
83
|
markdown: {
|
|
72
84
|
requested: markdownRequested,
|
|
73
85
|
used: false,
|
|
74
86
|
provider: null,
|
|
75
|
-
notes:
|
|
87
|
+
notes: "Spotify short-circuit uses transcript content",
|
|
76
88
|
},
|
|
77
89
|
transcript: transcriptDiagnostics,
|
|
78
90
|
},
|
|
@@ -80,87 +92,136 @@ export async function fetchLinkContent(url, options, deps) {
|
|
|
80
92
|
}
|
|
81
93
|
const appleIds = extractApplePodcastIds(url);
|
|
82
94
|
if (appleIds) {
|
|
83
|
-
if (!
|
|
84
|
-
throw new Error(
|
|
95
|
+
if (!transcription.openaiApiKey && !transcription.falApiKey) {
|
|
96
|
+
throw new Error("Apple Podcasts transcription requires OPENAI_API_KEY or FAL_KEY (Whisper); otherwise you may only get a slow/blocked HTML page.");
|
|
85
97
|
}
|
|
86
98
|
const transcriptResolution = await resolveTranscriptForLink(url, null, deps, {
|
|
87
99
|
youtubeTranscriptMode,
|
|
88
100
|
mediaTranscriptMode,
|
|
101
|
+
transcriptTimestamps,
|
|
89
102
|
cacheMode,
|
|
103
|
+
fileMtime,
|
|
90
104
|
});
|
|
91
105
|
if (!transcriptResolution.text) {
|
|
92
106
|
const notes = transcriptResolution.diagnostics?.notes;
|
|
93
|
-
const suffix = notes ? ` (${notes})` :
|
|
107
|
+
const suffix = notes ? ` (${notes})` : "";
|
|
94
108
|
throw new Error(`Failed to transcribe Apple Podcasts episode${suffix}`);
|
|
95
109
|
}
|
|
96
|
-
const transcriptDiagnostics = ensureTranscriptDiagnostics(transcriptResolution, cacheMode ??
|
|
97
|
-
transcriptDiagnostics.notes = appendNote(transcriptDiagnostics.notes,
|
|
110
|
+
const transcriptDiagnostics = ensureTranscriptDiagnostics(transcriptResolution, cacheMode ?? "default");
|
|
111
|
+
transcriptDiagnostics.notes = appendNote(transcriptDiagnostics.notes, "Apple Podcasts: skipped HTML fetch (prefer iTunes lookup / enclosures)");
|
|
98
112
|
return finalizeExtractedLinkContent({
|
|
99
113
|
url,
|
|
100
|
-
baseContent: selectBaseContent(
|
|
114
|
+
baseContent: selectBaseContent("", transcriptResolution.text, transcriptResolution.segments),
|
|
101
115
|
maxCharacters,
|
|
102
116
|
title: null,
|
|
103
117
|
description: null,
|
|
104
|
-
siteName:
|
|
118
|
+
siteName: "Apple Podcasts",
|
|
105
119
|
transcriptResolution,
|
|
106
120
|
video: null,
|
|
107
121
|
isVideoOnly: false,
|
|
108
122
|
diagnostics: {
|
|
109
|
-
strategy:
|
|
123
|
+
strategy: "html",
|
|
124
|
+
firecrawl: {
|
|
125
|
+
attempted: false,
|
|
126
|
+
used: false,
|
|
127
|
+
cacheMode,
|
|
128
|
+
cacheStatus: cacheMode === "bypass" ? "bypassed" : "unknown",
|
|
129
|
+
notes: "Apple Podcasts short-circuit skipped HTML/Firecrawl",
|
|
130
|
+
},
|
|
131
|
+
markdown: {
|
|
132
|
+
requested: markdownRequested,
|
|
133
|
+
used: false,
|
|
134
|
+
provider: null,
|
|
135
|
+
notes: "Apple Podcasts short-circuit uses transcript content",
|
|
136
|
+
},
|
|
137
|
+
transcript: transcriptDiagnostics,
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
if (isTwitterBroadcastUrl(url)) {
|
|
142
|
+
const broadcastTranscriptMode = mediaTranscriptMode === "auto" ? "prefer" : mediaTranscriptMode;
|
|
143
|
+
const transcriptResolution = await resolveTranscriptForLink(url, null, deps, {
|
|
144
|
+
youtubeTranscriptMode,
|
|
145
|
+
mediaTranscriptMode: broadcastTranscriptMode,
|
|
146
|
+
transcriptTimestamps,
|
|
147
|
+
cacheMode,
|
|
148
|
+
fileMtime,
|
|
149
|
+
});
|
|
150
|
+
if (!transcriptResolution.text) {
|
|
151
|
+
const notes = transcriptResolution.diagnostics?.notes;
|
|
152
|
+
const suffix = notes ? ` (${notes})` : "";
|
|
153
|
+
throw new Error(`Failed to transcribe X broadcast${suffix}`);
|
|
154
|
+
}
|
|
155
|
+
const transcriptDiagnostics = ensureTranscriptDiagnostics(transcriptResolution, cacheMode ?? "default");
|
|
156
|
+
transcriptDiagnostics.notes = appendNote(transcriptDiagnostics.notes, "X broadcast: skipped HTML/Firecrawl");
|
|
157
|
+
return finalizeExtractedLinkContent({
|
|
158
|
+
url,
|
|
159
|
+
baseContent: selectBaseContent("", transcriptResolution.text, transcriptResolution.segments),
|
|
160
|
+
maxCharacters,
|
|
161
|
+
title: null,
|
|
162
|
+
description: null,
|
|
163
|
+
siteName: "X",
|
|
164
|
+
transcriptResolution,
|
|
165
|
+
video: { kind: "direct", url },
|
|
166
|
+
isVideoOnly: true,
|
|
167
|
+
diagnostics: {
|
|
168
|
+
strategy: "html",
|
|
110
169
|
firecrawl: {
|
|
111
170
|
attempted: false,
|
|
112
171
|
used: false,
|
|
113
172
|
cacheMode,
|
|
114
|
-
cacheStatus: cacheMode ===
|
|
115
|
-
notes:
|
|
173
|
+
cacheStatus: cacheMode === "bypass" ? "bypassed" : "unknown",
|
|
174
|
+
notes: "X broadcast short-circuit skipped HTML/Firecrawl",
|
|
116
175
|
},
|
|
117
176
|
markdown: {
|
|
118
177
|
requested: markdownRequested,
|
|
119
178
|
used: false,
|
|
120
179
|
provider: null,
|
|
121
|
-
notes:
|
|
180
|
+
notes: "X broadcast uses transcript content",
|
|
122
181
|
},
|
|
123
182
|
transcript: transcriptDiagnostics,
|
|
124
183
|
},
|
|
125
184
|
});
|
|
126
185
|
}
|
|
127
|
-
if (isDirectMediaUrl(url) && mediaTranscriptMode ===
|
|
186
|
+
if (isDirectMediaUrl(url) && mediaTranscriptMode === "prefer") {
|
|
128
187
|
const transcriptResolution = await resolveTranscriptForLink(url, null, deps, {
|
|
129
188
|
youtubeTranscriptMode,
|
|
130
189
|
mediaTranscriptMode,
|
|
190
|
+
transcriptTimestamps,
|
|
131
191
|
cacheMode,
|
|
192
|
+
fileMtime,
|
|
132
193
|
});
|
|
133
194
|
if (!transcriptResolution.text) {
|
|
134
195
|
const notes = transcriptResolution.diagnostics?.notes;
|
|
135
|
-
const suffix = notes ? ` (${notes})` :
|
|
196
|
+
const suffix = notes ? ` (${notes})` : "";
|
|
136
197
|
throw new Error(`Failed to transcribe media${suffix}`);
|
|
137
198
|
}
|
|
138
|
-
const transcriptDiagnostics = ensureTranscriptDiagnostics(transcriptResolution, cacheMode ??
|
|
139
|
-
transcriptDiagnostics.notes = appendNote(transcriptDiagnostics.notes,
|
|
199
|
+
const transcriptDiagnostics = ensureTranscriptDiagnostics(transcriptResolution, cacheMode ?? "default");
|
|
200
|
+
transcriptDiagnostics.notes = appendNote(transcriptDiagnostics.notes, "Direct media URL: skipped HTML/Firecrawl");
|
|
140
201
|
return finalizeExtractedLinkContent({
|
|
141
202
|
url,
|
|
142
|
-
baseContent: selectBaseContent(
|
|
203
|
+
baseContent: selectBaseContent("", transcriptResolution.text, transcriptResolution.segments),
|
|
143
204
|
maxCharacters,
|
|
144
205
|
title: null,
|
|
145
206
|
description: null,
|
|
146
207
|
siteName: null,
|
|
147
208
|
transcriptResolution,
|
|
148
|
-
video: { kind:
|
|
209
|
+
video: { kind: "direct", url },
|
|
149
210
|
isVideoOnly: true,
|
|
150
211
|
diagnostics: {
|
|
151
|
-
strategy:
|
|
212
|
+
strategy: "html",
|
|
152
213
|
firecrawl: {
|
|
153
214
|
attempted: false,
|
|
154
215
|
used: false,
|
|
155
216
|
cacheMode,
|
|
156
|
-
cacheStatus: cacheMode ===
|
|
157
|
-
notes:
|
|
217
|
+
cacheStatus: cacheMode === "bypass" ? "bypassed" : "unknown",
|
|
218
|
+
notes: "Direct media URL skipped HTML/Firecrawl",
|
|
158
219
|
},
|
|
159
220
|
markdown: {
|
|
160
221
|
requested: markdownRequested,
|
|
161
222
|
used: false,
|
|
162
223
|
provider: null,
|
|
163
|
-
notes:
|
|
224
|
+
notes: "Direct media URL uses transcript content",
|
|
164
225
|
},
|
|
165
226
|
transcript: transcriptDiagnostics,
|
|
166
227
|
},
|
|
@@ -172,7 +233,7 @@ export async function fetchLinkContent(url, options, deps) {
|
|
|
172
233
|
attempted: false,
|
|
173
234
|
used: false,
|
|
174
235
|
cacheMode,
|
|
175
|
-
cacheStatus: cacheMode ===
|
|
236
|
+
cacheStatus: cacheMode === "bypass" ? "bypassed" : "unknown",
|
|
176
237
|
notes: null,
|
|
177
238
|
};
|
|
178
239
|
const twitterStatus = isTwitterStatusUrl(url);
|
|
@@ -209,6 +270,7 @@ export async function fetchLinkContent(url, options, deps) {
|
|
|
209
270
|
maxCharacters,
|
|
210
271
|
youtubeTranscriptMode,
|
|
211
272
|
mediaTranscriptMode,
|
|
273
|
+
transcriptTimestamps,
|
|
212
274
|
firecrawlDiagnostics,
|
|
213
275
|
markdownRequested,
|
|
214
276
|
deps,
|
|
@@ -216,66 +278,85 @@ export async function fetchLinkContent(url, options, deps) {
|
|
|
216
278
|
if (firecrawlResult) {
|
|
217
279
|
return firecrawlResult;
|
|
218
280
|
}
|
|
219
|
-
firecrawlDiagnostics.notes = appendNote(firecrawlDiagnostics.notes,
|
|
281
|
+
firecrawlDiagnostics.notes = appendNote(firecrawlDiagnostics.notes, "Firecrawl returned empty content");
|
|
220
282
|
return null;
|
|
221
283
|
};
|
|
222
284
|
const attemptBird = async () => {
|
|
223
285
|
if (!deps.readTweetWithBird || !twitterStatus) {
|
|
224
286
|
return null;
|
|
225
287
|
}
|
|
226
|
-
deps.onProgress?.({ kind:
|
|
288
|
+
deps.onProgress?.({ kind: "bird-start", url });
|
|
227
289
|
try {
|
|
228
290
|
const tweet = await deps.readTweetWithBird({ url, timeoutMs });
|
|
229
|
-
const text = tweet?.text?.trim() ??
|
|
291
|
+
const text = tweet?.text?.trim() ?? "";
|
|
230
292
|
if (text.length === 0) {
|
|
231
|
-
deps.onProgress?.({ kind:
|
|
293
|
+
deps.onProgress?.({ kind: "bird-done", url, ok: false, textBytes: null });
|
|
232
294
|
return null;
|
|
233
295
|
}
|
|
234
296
|
const title = tweet?.author?.username ? `@${tweet.author.username}` : null;
|
|
235
297
|
const description = null;
|
|
236
|
-
const siteName =
|
|
237
|
-
const
|
|
238
|
-
const
|
|
239
|
-
|
|
298
|
+
const siteName = "X";
|
|
299
|
+
const media = tweet?.media ?? null;
|
|
300
|
+
const mediaUrl = media?.preferredUrl ?? media?.urls?.[0] ?? null;
|
|
301
|
+
const hasMedia = Boolean(mediaUrl);
|
|
302
|
+
const shouldAttemptTranscript = mediaTranscriptMode === "prefer" || (mediaTranscriptMode === "auto" && hasMedia);
|
|
303
|
+
const autoModeNote = !shouldAttemptTranscript
|
|
304
|
+
? "Skipped tweet transcript (media transcript mode is auto; enable --video-mode transcript to force audio)."
|
|
305
|
+
: null;
|
|
306
|
+
const longFormNote = !hasMedia && text.length >= MAX_TWITTER_TEXT_FOR_TRANSCRIPT
|
|
307
|
+
? `Skipped yt-dlp transcript for long-form tweet text (${text.length} chars)`
|
|
308
|
+
: null;
|
|
309
|
+
const skipTranscriptReason = [autoModeNote, longFormNote].filter(Boolean).join(" ") || null;
|
|
310
|
+
const mediaTranscriptModeForTweet = shouldAttemptTranscript ? "prefer" : mediaTranscriptMode;
|
|
311
|
+
const transcriptResolution = skipTranscriptReason
|
|
312
|
+
? buildSkippedTwitterTranscript(cacheMode, skipTranscriptReason)
|
|
240
313
|
: await resolveTranscriptForLink(url, null, deps, {
|
|
241
314
|
youtubeTranscriptMode,
|
|
242
|
-
mediaTranscriptMode,
|
|
315
|
+
mediaTranscriptMode: mediaTranscriptModeForTweet,
|
|
316
|
+
mediaKindHint: media?.kind ?? null,
|
|
317
|
+
transcriptTimestamps,
|
|
243
318
|
cacheMode,
|
|
319
|
+
fileMtime,
|
|
244
320
|
});
|
|
245
|
-
const transcriptDiagnostics = ensureTranscriptDiagnostics(transcriptResolution, cacheMode ??
|
|
321
|
+
const transcriptDiagnostics = ensureTranscriptDiagnostics(transcriptResolution, cacheMode ?? "default");
|
|
246
322
|
const result = finalizeExtractedLinkContent({
|
|
247
323
|
url,
|
|
248
|
-
baseContent: selectBaseContent(text, transcriptResolution.text),
|
|
324
|
+
baseContent: selectBaseContent(text, transcriptResolution.text, transcriptResolution.segments),
|
|
249
325
|
maxCharacters,
|
|
250
326
|
title,
|
|
251
327
|
description,
|
|
252
328
|
siteName,
|
|
253
329
|
transcriptResolution,
|
|
254
|
-
video:
|
|
330
|
+
video: mediaUrl && media?.kind === "video"
|
|
331
|
+
? {
|
|
332
|
+
kind: "direct",
|
|
333
|
+
url: mediaUrl,
|
|
334
|
+
}
|
|
335
|
+
: null,
|
|
255
336
|
isVideoOnly: false,
|
|
256
337
|
diagnostics: {
|
|
257
|
-
strategy:
|
|
338
|
+
strategy: "bird",
|
|
258
339
|
firecrawl: firecrawlDiagnostics,
|
|
259
340
|
markdown: {
|
|
260
341
|
requested: markdownRequested,
|
|
261
342
|
used: false,
|
|
262
343
|
provider: null,
|
|
263
|
-
notes:
|
|
344
|
+
notes: "Bird tweet fetch provides plain text",
|
|
264
345
|
},
|
|
265
346
|
transcript: transcriptDiagnostics,
|
|
266
347
|
},
|
|
267
348
|
});
|
|
268
349
|
deps.onProgress?.({
|
|
269
|
-
kind:
|
|
350
|
+
kind: "bird-done",
|
|
270
351
|
url,
|
|
271
352
|
ok: true,
|
|
272
|
-
textBytes: Buffer.byteLength(result.content,
|
|
353
|
+
textBytes: Buffer.byteLength(result.content, "utf8"),
|
|
273
354
|
});
|
|
274
355
|
return result;
|
|
275
356
|
}
|
|
276
357
|
catch (error) {
|
|
277
358
|
birdError = error;
|
|
278
|
-
deps.onProgress?.({ kind:
|
|
359
|
+
deps.onProgress?.({ kind: "bird-done", url, ok: false, textBytes: null });
|
|
279
360
|
return null;
|
|
280
361
|
}
|
|
281
362
|
};
|
|
@@ -288,31 +369,31 @@ export async function fetchLinkContent(url, options, deps) {
|
|
|
288
369
|
return null;
|
|
289
370
|
}
|
|
290
371
|
for (const nitterUrl of nitterUrls) {
|
|
291
|
-
deps.onProgress?.({ kind:
|
|
372
|
+
deps.onProgress?.({ kind: "nitter-start", url: nitterUrl });
|
|
292
373
|
try {
|
|
293
374
|
const nitterResult = await fetchHtmlDocument(deps.fetch, nitterUrl, { timeoutMs });
|
|
294
375
|
const nitterHtml = nitterResult.html;
|
|
295
376
|
if (!nitterHtml.trim()) {
|
|
296
377
|
nitterError = new Error(`Nitter returned empty body from ${new URL(nitterUrl).host}`);
|
|
297
|
-
deps.onProgress?.({ kind:
|
|
378
|
+
deps.onProgress?.({ kind: "nitter-done", url: nitterUrl, ok: false, textBytes: null });
|
|
298
379
|
continue;
|
|
299
380
|
}
|
|
300
381
|
if (isAnubisHtml(nitterHtml)) {
|
|
301
382
|
nitterError = new Error(`Nitter returned Anubis challenge from ${new URL(nitterUrl).host}`);
|
|
302
|
-
deps.onProgress?.({ kind:
|
|
383
|
+
deps.onProgress?.({ kind: "nitter-done", url: nitterUrl, ok: false, textBytes: null });
|
|
303
384
|
continue;
|
|
304
385
|
}
|
|
305
386
|
deps.onProgress?.({
|
|
306
|
-
kind:
|
|
387
|
+
kind: "nitter-done",
|
|
307
388
|
url: nitterUrl,
|
|
308
389
|
ok: true,
|
|
309
|
-
textBytes: Buffer.byteLength(nitterHtml,
|
|
390
|
+
textBytes: Buffer.byteLength(nitterHtml, "utf8"),
|
|
310
391
|
});
|
|
311
392
|
return nitterHtml;
|
|
312
393
|
}
|
|
313
394
|
catch (error) {
|
|
314
395
|
nitterError = error;
|
|
315
|
-
deps.onProgress?.({ kind:
|
|
396
|
+
deps.onProgress?.({ kind: "nitter-done", url: nitterUrl, ok: false, textBytes: null });
|
|
316
397
|
}
|
|
317
398
|
}
|
|
318
399
|
return null;
|
|
@@ -326,6 +407,7 @@ export async function fetchLinkContent(url, options, deps) {
|
|
|
326
407
|
maxCharacters,
|
|
327
408
|
youtubeTranscriptMode,
|
|
328
409
|
mediaTranscriptMode,
|
|
410
|
+
transcriptTimestamps,
|
|
329
411
|
firecrawlDiagnostics,
|
|
330
412
|
markdownRequested,
|
|
331
413
|
markdownMode,
|
|
@@ -334,13 +416,13 @@ export async function fetchLinkContent(url, options, deps) {
|
|
|
334
416
|
readabilityCandidate: null,
|
|
335
417
|
});
|
|
336
418
|
if (!isBlockedTwitterContent(nitterResult.content)) {
|
|
337
|
-
nitterResult.diagnostics.strategy =
|
|
419
|
+
nitterResult.diagnostics.strategy = "nitter";
|
|
338
420
|
return nitterResult;
|
|
339
421
|
}
|
|
340
|
-
nitterError = new Error(
|
|
422
|
+
nitterError = new Error("Nitter returned blocked or empty content");
|
|
341
423
|
}
|
|
342
|
-
if (firecrawlMode ===
|
|
343
|
-
const firecrawlResult = await attemptFirecrawl(
|
|
424
|
+
if (firecrawlMode === "always") {
|
|
425
|
+
const firecrawlResult = await attemptFirecrawl("Firecrawl forced via options");
|
|
344
426
|
if (firecrawlResult) {
|
|
345
427
|
return firecrawlResult;
|
|
346
428
|
}
|
|
@@ -358,27 +440,27 @@ export async function fetchLinkContent(url, options, deps) {
|
|
|
358
440
|
}
|
|
359
441
|
if (!htmlResult) {
|
|
360
442
|
if (!canUseFirecrawl) {
|
|
361
|
-
throw htmlError instanceof Error ? htmlError : new Error(
|
|
443
|
+
throw htmlError instanceof Error ? htmlError : new Error("Failed to fetch HTML document");
|
|
362
444
|
}
|
|
363
|
-
const firecrawlResult = await attemptFirecrawl(
|
|
445
|
+
const firecrawlResult = await attemptFirecrawl("HTML fetch failed; falling back to Firecrawl");
|
|
364
446
|
if (firecrawlResult) {
|
|
365
447
|
return firecrawlResult;
|
|
366
448
|
}
|
|
367
449
|
const firecrawlError = firecrawlDiagnostics.notes
|
|
368
450
|
? `; Firecrawl notes: ${firecrawlDiagnostics.notes}`
|
|
369
|
-
:
|
|
370
|
-
throw new Error(`Failed to fetch HTML document${firecrawlError}${htmlError instanceof Error ? `; HTML error: ${htmlError.message}` :
|
|
451
|
+
: "";
|
|
452
|
+
throw new Error(`Failed to fetch HTML document${firecrawlError}${htmlError instanceof Error ? `; HTML error: ${htmlError.message}` : ""}`);
|
|
371
453
|
}
|
|
372
454
|
const html = htmlResult.html;
|
|
373
455
|
const effectiveUrl = htmlResult.finalUrl || url;
|
|
374
456
|
let readabilityCandidate = null;
|
|
375
|
-
if (firecrawlMode ===
|
|
457
|
+
if (firecrawlMode === "auto" && shouldFallbackToFirecrawl(html)) {
|
|
376
458
|
readabilityCandidate = await extractReadabilityFromHtml(html, effectiveUrl);
|
|
377
459
|
const readabilityText = readabilityCandidate?.text
|
|
378
460
|
? normalizeForPrompt(readabilityCandidate.text)
|
|
379
|
-
:
|
|
461
|
+
: "";
|
|
380
462
|
if (readabilityText.length < MIN_READABILITY_CONTENT_CHARACTERS) {
|
|
381
|
-
const firecrawlResult = await attemptFirecrawl(
|
|
463
|
+
const firecrawlResult = await attemptFirecrawl("HTML content looked blocked/thin; falling back to Firecrawl");
|
|
382
464
|
if (firecrawlResult) {
|
|
383
465
|
return firecrawlResult;
|
|
384
466
|
}
|
|
@@ -391,6 +473,7 @@ export async function fetchLinkContent(url, options, deps) {
|
|
|
391
473
|
maxCharacters,
|
|
392
474
|
youtubeTranscriptMode,
|
|
393
475
|
mediaTranscriptMode,
|
|
476
|
+
transcriptTimestamps,
|
|
394
477
|
firecrawlDiagnostics,
|
|
395
478
|
markdownRequested,
|
|
396
479
|
markdownMode,
|
|
@@ -400,15 +483,15 @@ export async function fetchLinkContent(url, options, deps) {
|
|
|
400
483
|
});
|
|
401
484
|
if (twitterStatus && isBlockedTwitterContent(htmlExtracted.content)) {
|
|
402
485
|
const birdNote = !deps.readTweetWithBird
|
|
403
|
-
?
|
|
486
|
+
? "Bird not available"
|
|
404
487
|
: birdError
|
|
405
488
|
? `Bird failed: ${birdError instanceof Error ? birdError.message : String(birdError)}`
|
|
406
|
-
:
|
|
489
|
+
: "Bird returned no text";
|
|
407
490
|
const nitterNote = nitterUrls.length > 0
|
|
408
491
|
? nitterError
|
|
409
492
|
? `Nitter failed: ${nitterError instanceof Error ? nitterError.message : String(nitterError)}`
|
|
410
|
-
:
|
|
411
|
-
:
|
|
493
|
+
: "Nitter returned no text"
|
|
494
|
+
: "Nitter not available";
|
|
412
495
|
throw new Error(`Unable to fetch tweet content from X. ${birdNote}. ${nitterNote}.`);
|
|
413
496
|
}
|
|
414
497
|
return htmlExtracted;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/index.ts"],"names":[],"mappings":"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"}
|