youtube-transcript-nodejs 0.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.
- package/LICENSE +21 -0
- package/README.md +337 -0
- package/dist/cjs/api/InnerTubeClient.js +236 -0
- package/dist/cjs/api/InnerTubeClient.js.map +1 -0
- package/dist/cjs/api/YouTubeTranscriptApi.js +160 -0
- package/dist/cjs/api/YouTubeTranscriptApi.js.map +1 -0
- package/dist/cjs/api/fetchStrategies.js +51 -0
- package/dist/cjs/api/fetchStrategies.js.map +1 -0
- package/dist/cjs/config/constants.js +34 -0
- package/dist/cjs/config/constants.js.map +1 -0
- package/dist/cjs/config/innerTubeContext.js +82 -0
- package/dist/cjs/config/innerTubeContext.js.map +1 -0
- package/dist/cjs/errors/BotDetected.js +20 -0
- package/dist/cjs/errors/BotDetected.js.map +1 -0
- package/dist/cjs/errors/FailedToCreateConsentCookie.js +17 -0
- package/dist/cjs/errors/FailedToCreateConsentCookie.js.map +1 -0
- package/dist/cjs/errors/InvalidVideoId.js +16 -0
- package/dist/cjs/errors/InvalidVideoId.js.map +1 -0
- package/dist/cjs/errors/IpBlocked.js +17 -0
- package/dist/cjs/errors/IpBlocked.js.map +1 -0
- package/dist/cjs/errors/NoTranscriptFound.js +23 -0
- package/dist/cjs/errors/NoTranscriptFound.js.map +1 -0
- package/dist/cjs/errors/NotTranslatable.js +15 -0
- package/dist/cjs/errors/NotTranslatable.js.map +1 -0
- package/dist/cjs/errors/PoTokenRequired.js +18 -0
- package/dist/cjs/errors/PoTokenRequired.js.map +1 -0
- package/dist/cjs/errors/TooManyRequests.js +19 -0
- package/dist/cjs/errors/TooManyRequests.js.map +1 -0
- package/dist/cjs/errors/TranscriptsDisabled.js +15 -0
- package/dist/cjs/errors/TranscriptsDisabled.js.map +1 -0
- package/dist/cjs/errors/TranslationLanguageNotAvailable.js +16 -0
- package/dist/cjs/errors/TranslationLanguageNotAvailable.js.map +1 -0
- package/dist/cjs/errors/VideoUnavailable.js +15 -0
- package/dist/cjs/errors/VideoUnavailable.js.map +1 -0
- package/dist/cjs/errors/VideoUnplayable.js +22 -0
- package/dist/cjs/errors/VideoUnplayable.js.map +1 -0
- package/dist/cjs/errors/YouTubeDataUnparsable.js +15 -0
- package/dist/cjs/errors/YouTubeDataUnparsable.js.map +1 -0
- package/dist/cjs/errors/YouTubeRequestFailed.js +18 -0
- package/dist/cjs/errors/YouTubeRequestFailed.js.map +1 -0
- package/dist/cjs/errors/YouTubeTranscriptError.js +19 -0
- package/dist/cjs/errors/YouTubeTranscriptError.js.map +1 -0
- package/dist/cjs/errors/index.js +34 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/formatters/Formatter.js +3 -0
- package/dist/cjs/formatters/Formatter.js.map +1 -0
- package/dist/cjs/formatters/JSONFormatter.js +24 -0
- package/dist/cjs/formatters/JSONFormatter.js.map +1 -0
- package/dist/cjs/formatters/PrettyPrintFormatter.js +26 -0
- package/dist/cjs/formatters/PrettyPrintFormatter.js.map +1 -0
- package/dist/cjs/formatters/SRTFormatter.js +39 -0
- package/dist/cjs/formatters/SRTFormatter.js.map +1 -0
- package/dist/cjs/formatters/TextFormatter.js +20 -0
- package/dist/cjs/formatters/TextFormatter.js.map +1 -0
- package/dist/cjs/formatters/WebVTTFormatter.js +39 -0
- package/dist/cjs/formatters/WebVTTFormatter.js.map +1 -0
- package/dist/cjs/formatters/base.js +61 -0
- package/dist/cjs/formatters/base.js.map +1 -0
- package/dist/cjs/formatters/index.js +19 -0
- package/dist/cjs/formatters/index.js.map +1 -0
- package/dist/cjs/http/cookieJar.js +91 -0
- package/dist/cjs/http/cookieJar.js.map +1 -0
- package/dist/cjs/http/httpClient.js +228 -0
- package/dist/cjs/http/httpClient.js.map +1 -0
- package/dist/cjs/index.js +50 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/models/FetchedTranscript.js +80 -0
- package/dist/cjs/models/FetchedTranscript.js.map +1 -0
- package/dist/cjs/models/FetchedTranscriptSnippet.js +29 -0
- package/dist/cjs/models/FetchedTranscriptSnippet.js.map +1 -0
- package/dist/cjs/models/FormattedTranscript.js +3 -0
- package/dist/cjs/models/FormattedTranscript.js.map +1 -0
- package/dist/cjs/models/Transcript.js +75 -0
- package/dist/cjs/models/Transcript.js.map +1 -0
- package/dist/cjs/models/TranscriptList.js +84 -0
- package/dist/cjs/models/TranscriptList.js.map +1 -0
- package/dist/cjs/models/TranscriptMetadata.js +3 -0
- package/dist/cjs/models/TranscriptMetadata.js.map +1 -0
- package/dist/cjs/models/TranslationLanguage.js +3 -0
- package/dist/cjs/models/TranslationLanguage.js.map +1 -0
- package/dist/cjs/models/index.js +13 -0
- package/dist/cjs/models/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/parsers/captionTrackParser.js +96 -0
- package/dist/cjs/parsers/captionTrackParser.js.map +1 -0
- package/dist/cjs/parsers/videoIdParser.js +65 -0
- package/dist/cjs/parsers/videoIdParser.js.map +1 -0
- package/dist/cjs/parsers/watchHtmlParser.js +78 -0
- package/dist/cjs/parsers/watchHtmlParser.js.map +1 -0
- package/dist/cjs/parsers/xmlTranscriptParser.js +84 -0
- package/dist/cjs/parsers/xmlTranscriptParser.js.map +1 -0
- package/dist/cjs/potoken/AutoPoTokenProvider.js +203 -0
- package/dist/cjs/potoken/AutoPoTokenProvider.js.map +1 -0
- package/dist/cjs/potoken/HttpPoTokenProvider.js +105 -0
- package/dist/cjs/potoken/HttpPoTokenProvider.js.map +1 -0
- package/dist/cjs/potoken/NoopPoTokenProvider.js +18 -0
- package/dist/cjs/potoken/NoopPoTokenProvider.js.map +1 -0
- package/dist/cjs/potoken/baseScriptCache.js +41 -0
- package/dist/cjs/potoken/baseScriptCache.js.map +1 -0
- package/dist/cjs/potoken/index.js +14 -0
- package/dist/cjs/potoken/index.js.map +1 -0
- package/dist/cjs/potoken/types.js +10 -0
- package/dist/cjs/potoken/types.js.map +1 -0
- package/dist/cjs/util/htmlSanitizer.js +77 -0
- package/dist/cjs/util/htmlSanitizer.js.map +1 -0
- package/dist/cjs/util/proxyUrl.js +42 -0
- package/dist/cjs/util/proxyUrl.js.map +1 -0
- package/dist/cjs/util/retry.js +65 -0
- package/dist/cjs/util/retry.js.map +1 -0
- package/dist/esm/api/InnerTubeClient.d.ts +61 -0
- package/dist/esm/api/InnerTubeClient.d.ts.map +1 -0
- package/dist/esm/api/InnerTubeClient.js +198 -0
- package/dist/esm/api/InnerTubeClient.js.map +1 -0
- package/dist/esm/api/YouTubeTranscriptApi.d.ts +88 -0
- package/dist/esm/api/YouTubeTranscriptApi.d.ts.map +1 -0
- package/dist/esm/api/YouTubeTranscriptApi.js +157 -0
- package/dist/esm/api/YouTubeTranscriptApi.js.map +1 -0
- package/dist/esm/api/fetchStrategies.d.ts +20 -0
- package/dist/esm/api/fetchStrategies.d.ts.map +1 -0
- package/dist/esm/api/fetchStrategies.js +48 -0
- package/dist/esm/api/fetchStrategies.js.map +1 -0
- package/dist/esm/config/constants.d.ts +30 -0
- package/dist/esm/config/constants.d.ts.map +1 -0
- package/dist/esm/config/constants.js +31 -0
- package/dist/esm/config/constants.js.map +1 -0
- package/dist/esm/config/innerTubeContext.d.ts +47 -0
- package/dist/esm/config/innerTubeContext.d.ts.map +1 -0
- package/dist/esm/config/innerTubeContext.js +77 -0
- package/dist/esm/config/innerTubeContext.js.map +1 -0
- package/dist/esm/errors/BotDetected.d.ts +13 -0
- package/dist/esm/errors/BotDetected.d.ts.map +1 -0
- package/dist/esm/errors/BotDetected.js +16 -0
- package/dist/esm/errors/BotDetected.js.map +1 -0
- package/dist/esm/errors/FailedToCreateConsentCookie.d.ts +10 -0
- package/dist/esm/errors/FailedToCreateConsentCookie.d.ts.map +1 -0
- package/dist/esm/errors/FailedToCreateConsentCookie.js +13 -0
- package/dist/esm/errors/FailedToCreateConsentCookie.js.map +1 -0
- package/dist/esm/errors/InvalidVideoId.d.ts +9 -0
- package/dist/esm/errors/InvalidVideoId.d.ts.map +1 -0
- package/dist/esm/errors/InvalidVideoId.js +12 -0
- package/dist/esm/errors/InvalidVideoId.js.map +1 -0
- package/dist/esm/errors/IpBlocked.d.ts +10 -0
- package/dist/esm/errors/IpBlocked.d.ts.map +1 -0
- package/dist/esm/errors/IpBlocked.js +13 -0
- package/dist/esm/errors/IpBlocked.js.map +1 -0
- package/dist/esm/errors/NoTranscriptFound.d.ts +19 -0
- package/dist/esm/errors/NoTranscriptFound.d.ts.map +1 -0
- package/dist/esm/errors/NoTranscriptFound.js +19 -0
- package/dist/esm/errors/NoTranscriptFound.js.map +1 -0
- package/dist/esm/errors/NotTranslatable.d.ts +9 -0
- package/dist/esm/errors/NotTranslatable.d.ts.map +1 -0
- package/dist/esm/errors/NotTranslatable.js +11 -0
- package/dist/esm/errors/NotTranslatable.js.map +1 -0
- package/dist/esm/errors/PoTokenRequired.d.ts +10 -0
- package/dist/esm/errors/PoTokenRequired.d.ts.map +1 -0
- package/dist/esm/errors/PoTokenRequired.js +14 -0
- package/dist/esm/errors/PoTokenRequired.js.map +1 -0
- package/dist/esm/errors/TooManyRequests.d.ts +12 -0
- package/dist/esm/errors/TooManyRequests.d.ts.map +1 -0
- package/dist/esm/errors/TooManyRequests.js +15 -0
- package/dist/esm/errors/TooManyRequests.js.map +1 -0
- package/dist/esm/errors/TranscriptsDisabled.d.ts +9 -0
- package/dist/esm/errors/TranscriptsDisabled.d.ts.map +1 -0
- package/dist/esm/errors/TranscriptsDisabled.js +11 -0
- package/dist/esm/errors/TranscriptsDisabled.js.map +1 -0
- package/dist/esm/errors/TranslationLanguageNotAvailable.d.ts +9 -0
- package/dist/esm/errors/TranslationLanguageNotAvailable.d.ts.map +1 -0
- package/dist/esm/errors/TranslationLanguageNotAvailable.js +12 -0
- package/dist/esm/errors/TranslationLanguageNotAvailable.js.map +1 -0
- package/dist/esm/errors/VideoUnavailable.d.ts +9 -0
- package/dist/esm/errors/VideoUnavailable.d.ts.map +1 -0
- package/dist/esm/errors/VideoUnavailable.js +11 -0
- package/dist/esm/errors/VideoUnavailable.js.map +1 -0
- package/dist/esm/errors/VideoUnplayable.d.ts +12 -0
- package/dist/esm/errors/VideoUnplayable.d.ts.map +1 -0
- package/dist/esm/errors/VideoUnplayable.js +18 -0
- package/dist/esm/errors/VideoUnplayable.js.map +1 -0
- package/dist/esm/errors/YouTubeDataUnparsable.d.ts +9 -0
- package/dist/esm/errors/YouTubeDataUnparsable.d.ts.map +1 -0
- package/dist/esm/errors/YouTubeDataUnparsable.js +11 -0
- package/dist/esm/errors/YouTubeDataUnparsable.js.map +1 -0
- package/dist/esm/errors/YouTubeRequestFailed.d.ts +10 -0
- package/dist/esm/errors/YouTubeRequestFailed.d.ts.map +1 -0
- package/dist/esm/errors/YouTubeRequestFailed.js +14 -0
- package/dist/esm/errors/YouTubeRequestFailed.js.map +1 -0
- package/dist/esm/errors/YouTubeTranscriptError.d.ts +10 -0
- package/dist/esm/errors/YouTubeTranscriptError.d.ts.map +1 -0
- package/dist/esm/errors/YouTubeTranscriptError.js +15 -0
- package/dist/esm/errors/YouTubeTranscriptError.js.map +1 -0
- package/dist/esm/errors/index.d.ts +17 -0
- package/dist/esm/errors/index.d.ts.map +1 -0
- package/dist/esm/errors/index.js +16 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/formatters/Formatter.d.ts +33 -0
- package/dist/esm/formatters/Formatter.d.ts.map +1 -0
- package/dist/esm/formatters/Formatter.js +2 -0
- package/dist/esm/formatters/Formatter.js.map +1 -0
- package/dist/esm/formatters/JSONFormatter.d.ts +10 -0
- package/dist/esm/formatters/JSONFormatter.d.ts.map +1 -0
- package/dist/esm/formatters/JSONFormatter.js +20 -0
- package/dist/esm/formatters/JSONFormatter.js.map +1 -0
- package/dist/esm/formatters/PrettyPrintFormatter.d.ts +15 -0
- package/dist/esm/formatters/PrettyPrintFormatter.d.ts.map +1 -0
- package/dist/esm/formatters/PrettyPrintFormatter.js +22 -0
- package/dist/esm/formatters/PrettyPrintFormatter.js.map +1 -0
- package/dist/esm/formatters/SRTFormatter.d.ts +22 -0
- package/dist/esm/formatters/SRTFormatter.d.ts.map +1 -0
- package/dist/esm/formatters/SRTFormatter.js +35 -0
- package/dist/esm/formatters/SRTFormatter.js.map +1 -0
- package/dist/esm/formatters/TextFormatter.d.ts +10 -0
- package/dist/esm/formatters/TextFormatter.d.ts.map +1 -0
- package/dist/esm/formatters/TextFormatter.js +16 -0
- package/dist/esm/formatters/TextFormatter.js.map +1 -0
- package/dist/esm/formatters/WebVTTFormatter.d.ts +22 -0
- package/dist/esm/formatters/WebVTTFormatter.d.ts.map +1 -0
- package/dist/esm/formatters/WebVTTFormatter.js +35 -0
- package/dist/esm/formatters/WebVTTFormatter.js.map +1 -0
- package/dist/esm/formatters/base.d.ts +25 -0
- package/dist/esm/formatters/base.d.ts.map +1 -0
- package/dist/esm/formatters/base.js +55 -0
- package/dist/esm/formatters/base.js.map +1 -0
- package/dist/esm/formatters/index.d.ts +8 -0
- package/dist/esm/formatters/index.d.ts.map +1 -0
- package/dist/esm/formatters/index.js +7 -0
- package/dist/esm/formatters/index.js.map +1 -0
- package/dist/esm/http/cookieJar.d.ts +39 -0
- package/dist/esm/http/cookieJar.d.ts.map +1 -0
- package/dist/esm/http/cookieJar.js +87 -0
- package/dist/esm/http/cookieJar.js.map +1 -0
- package/dist/esm/http/httpClient.d.ts +88 -0
- package/dist/esm/http/httpClient.d.ts.map +1 -0
- package/dist/esm/http/httpClient.js +191 -0
- package/dist/esm/http/httpClient.js.map +1 -0
- package/dist/esm/index.d.ts +19 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/models/FetchedTranscript.d.ts +49 -0
- package/dist/esm/models/FetchedTranscript.d.ts.map +1 -0
- package/dist/esm/models/FetchedTranscript.js +76 -0
- package/dist/esm/models/FetchedTranscript.js.map +1 -0
- package/dist/esm/models/FetchedTranscriptSnippet.d.ts +15 -0
- package/dist/esm/models/FetchedTranscriptSnippet.d.ts.map +1 -0
- package/dist/esm/models/FetchedTranscriptSnippet.js +25 -0
- package/dist/esm/models/FetchedTranscriptSnippet.js.map +1 -0
- package/dist/esm/models/FormattedTranscript.d.ts +9 -0
- package/dist/esm/models/FormattedTranscript.d.ts.map +1 -0
- package/dist/esm/models/FormattedTranscript.js +2 -0
- package/dist/esm/models/FormattedTranscript.js.map +1 -0
- package/dist/esm/models/Transcript.d.ts +36 -0
- package/dist/esm/models/Transcript.d.ts.map +1 -0
- package/dist/esm/models/Transcript.js +71 -0
- package/dist/esm/models/Transcript.js.map +1 -0
- package/dist/esm/models/TranscriptList.d.ts +48 -0
- package/dist/esm/models/TranscriptList.d.ts.map +1 -0
- package/dist/esm/models/TranscriptList.js +79 -0
- package/dist/esm/models/TranscriptList.js.map +1 -0
- package/dist/esm/models/TranscriptMetadata.d.ts +10 -0
- package/dist/esm/models/TranscriptMetadata.d.ts.map +1 -0
- package/dist/esm/models/TranscriptMetadata.js +2 -0
- package/dist/esm/models/TranscriptMetadata.js.map +1 -0
- package/dist/esm/models/TranslationLanguage.d.ts +8 -0
- package/dist/esm/models/TranslationLanguage.d.ts.map +1 -0
- package/dist/esm/models/TranslationLanguage.js +2 -0
- package/dist/esm/models/TranslationLanguage.js.map +1 -0
- package/dist/esm/models/index.d.ts +8 -0
- package/dist/esm/models/index.d.ts.map +1 -0
- package/dist/esm/models/index.js +5 -0
- package/dist/esm/models/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/parsers/captionTrackParser.d.ts +29 -0
- package/dist/esm/parsers/captionTrackParser.d.ts.map +1 -0
- package/dist/esm/parsers/captionTrackParser.js +91 -0
- package/dist/esm/parsers/captionTrackParser.js.map +1 -0
- package/dist/esm/parsers/videoIdParser.d.ts +11 -0
- package/dist/esm/parsers/videoIdParser.d.ts.map +1 -0
- package/dist/esm/parsers/videoIdParser.js +61 -0
- package/dist/esm/parsers/videoIdParser.js.map +1 -0
- package/dist/esm/parsers/watchHtmlParser.d.ts +33 -0
- package/dist/esm/parsers/watchHtmlParser.d.ts.map +1 -0
- package/dist/esm/parsers/watchHtmlParser.js +70 -0
- package/dist/esm/parsers/watchHtmlParser.js.map +1 -0
- package/dist/esm/parsers/xmlTranscriptParser.d.ts +17 -0
- package/dist/esm/parsers/xmlTranscriptParser.d.ts.map +1 -0
- package/dist/esm/parsers/xmlTranscriptParser.js +81 -0
- package/dist/esm/parsers/xmlTranscriptParser.js.map +1 -0
- package/dist/esm/potoken/AutoPoTokenProvider.d.ts +28 -0
- package/dist/esm/potoken/AutoPoTokenProvider.d.ts.map +1 -0
- package/dist/esm/potoken/AutoPoTokenProvider.js +166 -0
- package/dist/esm/potoken/AutoPoTokenProvider.js.map +1 -0
- package/dist/esm/potoken/HttpPoTokenProvider.d.ts +41 -0
- package/dist/esm/potoken/HttpPoTokenProvider.d.ts.map +1 -0
- package/dist/esm/potoken/HttpPoTokenProvider.js +101 -0
- package/dist/esm/potoken/HttpPoTokenProvider.js.map +1 -0
- package/dist/esm/potoken/NoopPoTokenProvider.d.ts +12 -0
- package/dist/esm/potoken/NoopPoTokenProvider.d.ts.map +1 -0
- package/dist/esm/potoken/NoopPoTokenProvider.js +14 -0
- package/dist/esm/potoken/NoopPoTokenProvider.js.map +1 -0
- package/dist/esm/potoken/baseScriptCache.d.ts +28 -0
- package/dist/esm/potoken/baseScriptCache.d.ts.map +1 -0
- package/dist/esm/potoken/baseScriptCache.js +37 -0
- package/dist/esm/potoken/baseScriptCache.js.map +1 -0
- package/dist/esm/potoken/index.d.ts +10 -0
- package/dist/esm/potoken/index.d.ts.map +1 -0
- package/dist/esm/potoken/index.js +6 -0
- package/dist/esm/potoken/index.js.map +1 -0
- package/dist/esm/potoken/types.d.ts +40 -0
- package/dist/esm/potoken/types.d.ts.map +1 -0
- package/dist/esm/potoken/types.js +7 -0
- package/dist/esm/potoken/types.js.map +1 -0
- package/dist/esm/util/htmlSanitizer.d.ts +21 -0
- package/dist/esm/util/htmlSanitizer.d.ts.map +1 -0
- package/dist/esm/util/htmlSanitizer.js +69 -0
- package/dist/esm/util/htmlSanitizer.js.map +1 -0
- package/dist/esm/util/proxyUrl.d.ts +22 -0
- package/dist/esm/util/proxyUrl.d.ts.map +1 -0
- package/dist/esm/util/proxyUrl.js +39 -0
- package/dist/esm/util/proxyUrl.js.map +1 -0
- package/dist/esm/util/retry.d.ts +37 -0
- package/dist/esm/util/retry.d.ts.map +1 -0
- package/dist/esm/util/retry.js +60 -0
- package/dist/esm/util/retry.js.map +1 -0
- package/package.json +111 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the provided video id cannot be parsed or is invalid.
|
|
4
|
+
* Mirrors `InvalidVideoId` from the Python library.
|
|
5
|
+
*/
|
|
6
|
+
export class InvalidVideoId extends YouTubeTranscriptError {
|
|
7
|
+
constructor(videoId) {
|
|
8
|
+
super(`You provided an invalid video ID: "${videoId}". ` +
|
|
9
|
+
`Video IDs must be 11 characters long or be a valid YouTube URL.`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=InvalidVideoId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvalidVideoId.js","sourceRoot":"","sources":["../../../src/errors/InvalidVideoId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,sBAAsB;IACxD,YAAY,OAAe;QACzB,KAAK,CACH,sCAAsC,OAAO,KAAK;YAChD,iEAAiE,CACpE,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when YouTube blocks the request due to IP-level detection
|
|
4
|
+
* (CAPTCHA, rate limit, geo-block). Matches Python's `IpBlocked`.
|
|
5
|
+
*/
|
|
6
|
+
export declare class IpBlocked extends YouTubeTranscriptError {
|
|
7
|
+
readonly statusCode?: number;
|
|
8
|
+
constructor(videoId: string, statusCode?: number);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=IpBlocked.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IpBlocked.d.ts","sourceRoot":"","sources":["../../../src/errors/IpBlocked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,qBAAa,SAAU,SAAQ,sBAAsB;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAQjD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when YouTube blocks the request due to IP-level detection
|
|
4
|
+
* (CAPTCHA, rate limit, geo-block). Matches Python's `IpBlocked`.
|
|
5
|
+
*/
|
|
6
|
+
export class IpBlocked extends YouTubeTranscriptError {
|
|
7
|
+
statusCode;
|
|
8
|
+
constructor(videoId, statusCode) {
|
|
9
|
+
super(`IP-blocked by YouTube while fetching video "${videoId}"${statusCode ? ` (status ${statusCode})` : ''}. ` + `Try a proxy, custom cookies, or a PoToken provider.`);
|
|
10
|
+
this.statusCode = statusCode;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=IpBlocked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IpBlocked.js","sourceRoot":"","sources":["../../../src/errors/IpBlocked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,OAAO,SAAU,SAAQ,sBAAsB;IAC1C,UAAU,CAAU;IAE7B,YAAY,OAAe,EAAE,UAAmB;QAC9C,KAAK,CACH,+CAA+C,OAAO,IACpD,UAAU,CAAC,CAAC,CAAC,YAAY,UAAU,GAAG,CAAC,CAAC,CAAC,EAC3C,IAAI,GAAG,qDAAqD,CAC7D,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TranscriptList } from '../models/TranscriptList.js';
|
|
2
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
3
|
+
export interface NoTranscriptFoundOptions {
|
|
4
|
+
videoId: string;
|
|
5
|
+
requestedLanguageCodes: readonly string[];
|
|
6
|
+
transcriptData?: TranscriptList;
|
|
7
|
+
customMessage?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Thrown when none of the requested language codes match any available
|
|
11
|
+
* caption track. Mirrors `NoTranscriptFound` from the Python library.
|
|
12
|
+
*/
|
|
13
|
+
export declare class NoTranscriptFound extends YouTubeTranscriptError {
|
|
14
|
+
readonly videoId: string;
|
|
15
|
+
readonly requestedLanguageCodes: readonly string[];
|
|
16
|
+
readonly transcriptData: TranscriptList | undefined;
|
|
17
|
+
constructor(opts: NoTranscriptFoundOptions);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=NoTranscriptFound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoTranscriptFound.d.ts","sourceRoot":"","sources":["../../../src/errors/NoTranscriptFound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,sBAAsB;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;IACnD,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;gBAExC,IAAI,EAAE,wBAAwB;CAU3C"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when none of the requested language codes match any available
|
|
4
|
+
* caption track. Mirrors `NoTranscriptFound` from the Python library.
|
|
5
|
+
*/
|
|
6
|
+
export class NoTranscriptFound extends YouTubeTranscriptError {
|
|
7
|
+
videoId;
|
|
8
|
+
requestedLanguageCodes;
|
|
9
|
+
transcriptData;
|
|
10
|
+
constructor(opts) {
|
|
11
|
+
super(opts.customMessage ??
|
|
12
|
+
`No transcripts were found for video "${opts.videoId}" in any of the requested ` +
|
|
13
|
+
`language codes: [${opts.requestedLanguageCodes.join(', ')}].`);
|
|
14
|
+
this.videoId = opts.videoId;
|
|
15
|
+
this.requestedLanguageCodes = opts.requestedLanguageCodes;
|
|
16
|
+
this.transcriptData = opts.transcriptData;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=NoTranscriptFound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoTranscriptFound.js","sourceRoot":"","sources":["../../../src/errors/NoTranscriptFound.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AASrE;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,sBAAsB;IAClD,OAAO,CAAS;IAChB,sBAAsB,CAAoB;IAC1C,cAAc,CAA6B;IAEpD,YAAY,IAA8B;QACxC,KAAK,CACH,IAAI,CAAC,aAAa;YAChB,wCAAwC,IAAI,CAAC,OAAO,4BAA4B;gBAC9E,oBAAoB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACnE,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the user asks to translate a transcript that is not translatable.
|
|
4
|
+
* Mirrors `NotTranslatable` from the Python library.
|
|
5
|
+
*/
|
|
6
|
+
export declare class NotTranslatable extends YouTubeTranscriptError {
|
|
7
|
+
constructor(videoId: string);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=NotTranslatable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotTranslatable.d.ts","sourceRoot":"","sources":["../../../src/errors/NotTranslatable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,sBAAsB;gBAC7C,OAAO,EAAE,MAAM;CAG5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the user asks to translate a transcript that is not translatable.
|
|
4
|
+
* Mirrors `NotTranslatable` from the Python library.
|
|
5
|
+
*/
|
|
6
|
+
export class NotTranslatable extends YouTubeTranscriptError {
|
|
7
|
+
constructor(videoId) {
|
|
8
|
+
super(`The transcript for video "${videoId}" is not translatable.`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=NotTranslatable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotTranslatable.js","sourceRoot":"","sources":["../../../src/errors/NotTranslatable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,sBAAsB;IACzD,YAAY,OAAe;QACzB,KAAK,CAAC,6BAA6B,OAAO,wBAAwB,CAAC,CAAC;IACtE,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the fetched caption baseUrl contains the sentinel `&exp=xpe`
|
|
4
|
+
* indicating that a PoToken is mandatory. This is the passive detection from
|
|
5
|
+
* the Python library (`PoTokenRequired`).
|
|
6
|
+
*/
|
|
7
|
+
export declare class PoTokenRequired extends YouTubeTranscriptError {
|
|
8
|
+
constructor(videoId: string);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=PoTokenRequired.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PoTokenRequired.d.ts","sourceRoot":"","sources":["../../../src/errors/PoTokenRequired.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,sBAAsB;gBAC7C,OAAO,EAAE,MAAM;CAO5B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the fetched caption baseUrl contains the sentinel `&exp=xpe`
|
|
4
|
+
* indicating that a PoToken is mandatory. This is the passive detection from
|
|
5
|
+
* the Python library (`PoTokenRequired`).
|
|
6
|
+
*/
|
|
7
|
+
export class PoTokenRequired extends YouTubeTranscriptError {
|
|
8
|
+
constructor(videoId) {
|
|
9
|
+
super(`PoToken is required to fetch the transcript for video "${videoId}". ` +
|
|
10
|
+
`Please open an issue at https://github.com/jdepoix/youtube-transcript-api/issues ` +
|
|
11
|
+
`and provide this video ID.`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=PoTokenRequired.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PoTokenRequired.js","sourceRoot":"","sources":["../../../src/errors/PoTokenRequired.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,sBAAsB;IACzD,YAAY,OAAe;QACzB,KAAK,CACH,0DAA0D,OAAO,KAAK;YACpE,mFAAmF;YACnF,4BAA4B,CAC/B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when YouTube returns HTTP 429.
|
|
4
|
+
*
|
|
5
|
+
* Note: the Python library actually maps 429 to `IpBlocked`; we keep both classes
|
|
6
|
+
* distinct for clarity, and the InnerTubeClient maps to IpBlocked by default.
|
|
7
|
+
* `TooManyRequests` is reserved for explicit rate-limit responses elsewhere.
|
|
8
|
+
*/
|
|
9
|
+
export declare class TooManyRequests extends YouTubeTranscriptError {
|
|
10
|
+
constructor(videoId: string);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=TooManyRequests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TooManyRequests.d.ts","sourceRoot":"","sources":["../../../src/errors/TooManyRequests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,sBAAsB;gBAC7C,OAAO,EAAE,MAAM;CAM5B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when YouTube returns HTTP 429.
|
|
4
|
+
*
|
|
5
|
+
* Note: the Python library actually maps 429 to `IpBlocked`; we keep both classes
|
|
6
|
+
* distinct for clarity, and the InnerTubeClient maps to IpBlocked by default.
|
|
7
|
+
* `TooManyRequests` is reserved for explicit rate-limit responses elsewhere.
|
|
8
|
+
*/
|
|
9
|
+
export class TooManyRequests extends YouTubeTranscriptError {
|
|
10
|
+
constructor(videoId) {
|
|
11
|
+
super(`YouTube is receiving too many requests from your IP for video "${videoId}". ` +
|
|
12
|
+
`Please slow down or use a proxy.`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=TooManyRequests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TooManyRequests.js","sourceRoot":"","sources":["../../../src/errors/TooManyRequests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,OAAO,eAAgB,SAAQ,sBAAsB;IACzD,YAAY,OAAe;QACzB,KAAK,CACH,kEAAkE,OAAO,KAAK;YAC5E,kCAAkC,CACrC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when InnerTube returns no caption tracks (the video has no subtitles).
|
|
4
|
+
* Mirrors `TranscriptsDisabled` from the Python library.
|
|
5
|
+
*/
|
|
6
|
+
export declare class TranscriptsDisabled extends YouTubeTranscriptError {
|
|
7
|
+
constructor(videoId: string);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=TranscriptsDisabled.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TranscriptsDisabled.d.ts","sourceRoot":"","sources":["../../../src/errors/TranscriptsDisabled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,sBAAsB;gBACjD,OAAO,EAAE,MAAM;CAG5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when InnerTube returns no caption tracks (the video has no subtitles).
|
|
4
|
+
* Mirrors `TranscriptsDisabled` from the Python library.
|
|
5
|
+
*/
|
|
6
|
+
export class TranscriptsDisabled extends YouTubeTranscriptError {
|
|
7
|
+
constructor(videoId) {
|
|
8
|
+
super(`Subtitles are disabled for video "${videoId}".`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=TranscriptsDisabled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TranscriptsDisabled.js","sourceRoot":"","sources":["../../../src/errors/TranscriptsDisabled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,sBAAsB;IAC7D,YAAY,OAAe;QACzB,KAAK,CAAC,qCAAqC,OAAO,IAAI,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the requested target language is not in the source track's
|
|
4
|
+
* `translationLanguages` list. Mirrors `TranslationLanguageNotAvailable`.
|
|
5
|
+
*/
|
|
6
|
+
export declare class TranslationLanguageNotAvailable extends YouTubeTranscriptError {
|
|
7
|
+
constructor(videoId: string, requestedLang: string, available: readonly string[]);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=TranslationLanguageNotAvailable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TranslationLanguageNotAvailable.d.ts","sourceRoot":"","sources":["../../../src/errors/TranslationLanguageNotAvailable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,qBAAa,+BAAgC,SAAQ,sBAAsB;gBAC7D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE;CAMjF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the requested target language is not in the source track's
|
|
4
|
+
* `translationLanguages` list. Mirrors `TranslationLanguageNotAvailable`.
|
|
5
|
+
*/
|
|
6
|
+
export class TranslationLanguageNotAvailable extends YouTubeTranscriptError {
|
|
7
|
+
constructor(videoId, requestedLang, available) {
|
|
8
|
+
super(`The requested translation language "${requestedLang}" is not available for video ` +
|
|
9
|
+
`"${videoId}". Available: [${available.join(', ')}].`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=TranslationLanguageNotAvailable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TranslationLanguageNotAvailable.js","sourceRoot":"","sources":["../../../src/errors/TranslationLanguageNotAvailable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,OAAO,+BAAgC,SAAQ,sBAAsB;IACzE,YAAY,OAAe,EAAE,aAAqB,EAAE,SAA4B;QAC9E,KAAK,CACH,uCAAuC,aAAa,+BAA+B;YACjF,IAAI,OAAO,kBAAkB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACxD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the video itself is unavailable (deleted, private, region-locked).
|
|
4
|
+
* Mirrors `VideoUnavailable` from the Python library.
|
|
5
|
+
*/
|
|
6
|
+
export declare class VideoUnavailable extends YouTubeTranscriptError {
|
|
7
|
+
constructor(videoId: string);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=VideoUnavailable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoUnavailable.d.ts","sourceRoot":"","sources":["../../../src/errors/VideoUnavailable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,sBAAsB;gBAC9C,OAAO,EAAE,MAAM;CAG5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the video itself is unavailable (deleted, private, region-locked).
|
|
4
|
+
* Mirrors `VideoUnavailable` from the Python library.
|
|
5
|
+
*/
|
|
6
|
+
export class VideoUnavailable extends YouTubeTranscriptError {
|
|
7
|
+
constructor(videoId) {
|
|
8
|
+
super(`The video with ID "${videoId}" is no longer available.`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=VideoUnavailable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoUnavailable.js","sourceRoot":"","sources":["../../../src/errors/VideoUnavailable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,sBAAsB;IAC1D,YAAY,OAAe;QACzB,KAAK,CAAC,sBAAsB,OAAO,2BAA2B,CAAC,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when InnerTube responds with playabilityStatus other than OK.
|
|
4
|
+
* Carries the reason and (when present) subreason text from YouTube.
|
|
5
|
+
* Mirrors `VideoUnplayable` from the Python library.
|
|
6
|
+
*/
|
|
7
|
+
export declare class VideoUnplayable extends YouTubeTranscriptError {
|
|
8
|
+
readonly reason: string | undefined;
|
|
9
|
+
readonly subreason: readonly string[];
|
|
10
|
+
constructor(videoId: string, reason: string | undefined, subreason: readonly string[]);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=VideoUnplayable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoUnplayable.d.ts","sourceRoot":"","sources":["../../../src/errors/VideoUnplayable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,sBAAsB;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;gBAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE;CAOtF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when InnerTube responds with playabilityStatus other than OK.
|
|
4
|
+
* Carries the reason and (when present) subreason text from YouTube.
|
|
5
|
+
* Mirrors `VideoUnplayable` from the Python library.
|
|
6
|
+
*/
|
|
7
|
+
export class VideoUnplayable extends YouTubeTranscriptError {
|
|
8
|
+
reason;
|
|
9
|
+
subreason;
|
|
10
|
+
constructor(videoId, reason, subreason) {
|
|
11
|
+
const reasonPart = reason ? `: ${reason}` : '';
|
|
12
|
+
const subreasonPart = subreason.length > 0 ? ` (${subreason.join('; ')})` : '';
|
|
13
|
+
super(`The video with ID "${videoId}" is unplayable${reasonPart}${subreasonPart}.`);
|
|
14
|
+
this.reason = reason;
|
|
15
|
+
this.subreason = subreason;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=VideoUnplayable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoUnplayable.js","sourceRoot":"","sources":["../../../src/errors/VideoUnplayable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,sBAAsB;IAChD,MAAM,CAAqB;IAC3B,SAAS,CAAoB;IAEtC,YAAY,OAAe,EAAE,MAA0B,EAAE,SAA4B;QACnF,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,KAAK,CAAC,sBAAsB,OAAO,kBAAkB,UAAU,GAAG,aAAa,GAAG,CAAC,CAAC;QACpF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the watch HTML or InnerTube JSON cannot be parsed (regex misses,
|
|
4
|
+
* missing expected keys). Mirrors `YouTubeDataUnparsable`.
|
|
5
|
+
*/
|
|
6
|
+
export declare class YouTubeDataUnparsable extends YouTubeTranscriptError {
|
|
7
|
+
constructor(videoId: string, detail?: string);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=YouTubeDataUnparsable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YouTubeDataUnparsable.d.ts","sourceRoot":"","sources":["../../../src/errors/YouTubeDataUnparsable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,sBAAsB;gBACnD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAO7C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when the watch HTML or InnerTube JSON cannot be parsed (regex misses,
|
|
4
|
+
* missing expected keys). Mirrors `YouTubeDataUnparsable`.
|
|
5
|
+
*/
|
|
6
|
+
export class YouTubeDataUnparsable extends YouTubeTranscriptError {
|
|
7
|
+
constructor(videoId, detail) {
|
|
8
|
+
super(`Unable to parse YouTube response for video "${videoId}"${detail ? `: ${detail}` : ''}.`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=YouTubeDataUnparsable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YouTubeDataUnparsable.js","sourceRoot":"","sources":["../../../src/errors/YouTubeDataUnparsable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,sBAAsB;IAC/D,YAAY,OAAe,EAAE,MAAe;QAC1C,KAAK,CACH,+CAA+C,OAAO,IACpD,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAC3B,GAAG,CACJ,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when an unexpected HTTP failure occurs (non-429 4xx/5xx from YouTube
|
|
4
|
+
* for which we have no more specific mapping). Mirrors `YouTubeRequestFailed`.
|
|
5
|
+
*/
|
|
6
|
+
export declare class YouTubeRequestFailed extends YouTubeTranscriptError {
|
|
7
|
+
readonly statusCode?: number;
|
|
8
|
+
constructor(videoId: string, statusCode: number, statusText: string, url: string);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=YouTubeRequestFailed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YouTubeRequestFailed.d.ts","sourceRoot":"","sources":["../../../src/errors/YouTubeRequestFailed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,sBAAsB;IAC9D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAOjF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when an unexpected HTTP failure occurs (non-429 4xx/5xx from YouTube
|
|
4
|
+
* for which we have no more specific mapping). Mirrors `YouTubeRequestFailed`.
|
|
5
|
+
*/
|
|
6
|
+
export class YouTubeRequestFailed extends YouTubeTranscriptError {
|
|
7
|
+
statusCode;
|
|
8
|
+
constructor(videoId, statusCode, statusText, url) {
|
|
9
|
+
super(`YouTube HTTP request failed for video "${videoId}": ` +
|
|
10
|
+
`${statusCode} ${statusText} (${url})`);
|
|
11
|
+
this.statusCode = statusCode;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=YouTubeRequestFailed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YouTubeRequestFailed.js","sourceRoot":"","sources":["../../../src/errors/YouTubeRequestFailed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,sBAAsB;IACrD,UAAU,CAAU;IAE7B,YAAY,OAAe,EAAE,UAAkB,EAAE,UAAkB,EAAE,GAAW;QAC9E,KAAK,CACH,0CAA0C,OAAO,KAAK;YACpD,GAAG,UAAU,IAAI,UAAU,KAAK,GAAG,GAAG,CACzC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for all youtube-transcript-nodejs errors.
|
|
3
|
+
*
|
|
4
|
+
* Matches the Python `youtube_transcript_api.YouTubeTranscriptApiException`.
|
|
5
|
+
*/
|
|
6
|
+
export declare class YouTubeTranscriptError extends Error {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
constructor(message: string);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=YouTubeTranscriptError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YouTubeTranscriptError.d.ts","sourceRoot":"","sources":["../../../src/errors/YouTubeTranscriptError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAkB,IAAI,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM;CAM5B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for all youtube-transcript-nodejs errors.
|
|
3
|
+
*
|
|
4
|
+
* Matches the Python `youtube_transcript_api.YouTubeTranscriptApiException`.
|
|
5
|
+
*/
|
|
6
|
+
export class YouTubeTranscriptError extends Error {
|
|
7
|
+
name;
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = new.target.name;
|
|
11
|
+
// Restore prototype chain for `instanceof` after transpilation.
|
|
12
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=YouTubeTranscriptError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YouTubeTranscriptError.js","sourceRoot":"","sources":["../../../src/errors/YouTubeTranscriptError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC7B,IAAI,CAAS;IAE/B,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,gEAAgE;QAChE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
export { InvalidVideoId } from './InvalidVideoId.js';
|
|
3
|
+
export { VideoUnavailable } from './VideoUnavailable.js';
|
|
4
|
+
export { VideoUnplayable } from './VideoUnplayable.js';
|
|
5
|
+
export { TooManyRequests } from './TooManyRequests.js';
|
|
6
|
+
export { IpBlocked } from './IpBlocked.js';
|
|
7
|
+
export { BotDetected } from './BotDetected.js';
|
|
8
|
+
export { PoTokenRequired } from './PoTokenRequired.js';
|
|
9
|
+
export { TranscriptsDisabled } from './TranscriptsDisabled.js';
|
|
10
|
+
export { NotTranslatable } from './NotTranslatable.js';
|
|
11
|
+
export { TranslationLanguageNotAvailable } from './TranslationLanguageNotAvailable.js';
|
|
12
|
+
export { FailedToCreateConsentCookie } from './FailedToCreateConsentCookie.js';
|
|
13
|
+
export { YouTubeRequestFailed } from './YouTubeRequestFailed.js';
|
|
14
|
+
export { YouTubeDataUnparsable } from './YouTubeDataUnparsable.js';
|
|
15
|
+
export { NoTranscriptFound } from './NoTranscriptFound.js';
|
|
16
|
+
export type { NoTranscriptFoundOptions } from './NoTranscriptFound.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { YouTubeTranscriptError } from './YouTubeTranscriptError.js';
|
|
2
|
+
export { InvalidVideoId } from './InvalidVideoId.js';
|
|
3
|
+
export { VideoUnavailable } from './VideoUnavailable.js';
|
|
4
|
+
export { VideoUnplayable } from './VideoUnplayable.js';
|
|
5
|
+
export { TooManyRequests } from './TooManyRequests.js';
|
|
6
|
+
export { IpBlocked } from './IpBlocked.js';
|
|
7
|
+
export { BotDetected } from './BotDetected.js';
|
|
8
|
+
export { PoTokenRequired } from './PoTokenRequired.js';
|
|
9
|
+
export { TranscriptsDisabled } from './TranscriptsDisabled.js';
|
|
10
|
+
export { NotTranslatable } from './NotTranslatable.js';
|
|
11
|
+
export { TranslationLanguageNotAvailable } from './TranslationLanguageNotAvailable.js';
|
|
12
|
+
export { FailedToCreateConsentCookie } from './FailedToCreateConsentCookie.js';
|
|
13
|
+
export { YouTubeRequestFailed } from './YouTubeRequestFailed.js';
|
|
14
|
+
export { YouTubeDataUnparsable } from './YouTubeDataUnparsable.js';
|
|
15
|
+
export { NoTranscriptFound } from './NoTranscriptFound.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single transcript snippet, post-parse.
|
|
3
|
+
*
|
|
4
|
+
* Defined here (rather than imported from `models/`) so formatters are
|
|
5
|
+
* decoupled from the public data classes — useful for testing and for
|
|
6
|
+
* future refactors.
|
|
7
|
+
*/
|
|
8
|
+
export interface SnippetLike {
|
|
9
|
+
readonly text: string;
|
|
10
|
+
readonly start: number;
|
|
11
|
+
readonly duration: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Result of formatting a transcript.
|
|
15
|
+
*/
|
|
16
|
+
export interface FormattedOutput {
|
|
17
|
+
/** The textual payload. */
|
|
18
|
+
readonly content: string;
|
|
19
|
+
/** Recommended file extension (without the leading dot). */
|
|
20
|
+
readonly extension: string;
|
|
21
|
+
/** Suggested MIME type. */
|
|
22
|
+
readonly mimeType: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A formatter renders a list of transcript snippets into a textual format
|
|
26
|
+
* (SRT, WebVTT, plain text, JSON, etc).
|
|
27
|
+
*/
|
|
28
|
+
export interface Formatter {
|
|
29
|
+
readonly extension: string;
|
|
30
|
+
readonly mimeType: string;
|
|
31
|
+
render(snippets: readonly SnippetLike[]): FormattedOutput;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=Formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Formatter.d.ts","sourceRoot":"","sources":["../../../src/formatters/Formatter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,eAAe,CAAC;CAC3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Formatter.js","sourceRoot":"","sources":["../../../src/formatters/Formatter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FormattedOutput, Formatter, SnippetLike } from './Formatter.js';
|
|
2
|
+
/**
|
|
3
|
+
* JSON formatter — emits a pretty-printed array of `{ text, start, duration }`.
|
|
4
|
+
*/
|
|
5
|
+
export declare class JSONFormatter implements Formatter {
|
|
6
|
+
readonly extension = "json";
|
|
7
|
+
readonly mimeType = "application/json";
|
|
8
|
+
render(snippets: readonly SnippetLike[]): FormattedOutput;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=JSONFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSONFormatter.d.ts","sourceRoot":"","sources":["../../../src/formatters/JSONFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE9E;;GAEG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,SAAS,UAAU;IAC5B,QAAQ,CAAC,QAAQ,sBAAsB;IAEvC,MAAM,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,eAAe;CAY1D"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON formatter — emits a pretty-printed array of `{ text, start, duration }`.
|
|
3
|
+
*/
|
|
4
|
+
export class JSONFormatter {
|
|
5
|
+
extension = 'json';
|
|
6
|
+
mimeType = 'application/json';
|
|
7
|
+
render(snippets) {
|
|
8
|
+
const data = snippets.map((s) => ({
|
|
9
|
+
text: s.text,
|
|
10
|
+
start: s.start,
|
|
11
|
+
duration: s.duration,
|
|
12
|
+
}));
|
|
13
|
+
return {
|
|
14
|
+
content: JSON.stringify(data, null, 2) + '\n',
|
|
15
|
+
extension: this.extension,
|
|
16
|
+
mimeType: this.mimeType,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=JSONFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSONFormatter.js","sourceRoot":"","sources":["../../../src/formatters/JSONFormatter.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,aAAa;IACf,SAAS,GAAG,MAAM,CAAC;IACnB,QAAQ,GAAG,kBAAkB,CAAC;IAEvC,MAAM,CAAC,QAAgC;QACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,CAAC;QACJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;YAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FormattedOutput, Formatter, SnippetLike } from './Formatter.js';
|
|
2
|
+
/**
|
|
3
|
+
* Pretty-print formatter — human-readable debug output.
|
|
4
|
+
*
|
|
5
|
+
* Output format:
|
|
6
|
+
*
|
|
7
|
+
* [00:00:00.000] Hello world
|
|
8
|
+
* [00:00:01.540] Next line
|
|
9
|
+
*/
|
|
10
|
+
export declare class PrettyPrintFormatter implements Formatter {
|
|
11
|
+
readonly extension = "txt";
|
|
12
|
+
readonly mimeType = "text/plain";
|
|
13
|
+
render(snippets: readonly SnippetLike[]): FormattedOutput;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=PrettyPrintFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrettyPrintFormatter.d.ts","sourceRoot":"","sources":["../../../src/formatters/PrettyPrintFormatter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE9E;;;;;;;GAOG;AACH,qBAAa,oBAAqB,YAAW,SAAS;IACpD,QAAQ,CAAC,SAAS,SAAS;IAC3B,QAAQ,CAAC,QAAQ,gBAAgB;IAEjC,MAAM,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,eAAe;CAQ1D"}
|