aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-12-07 11:43:14 +0000
committerMohamed Bassem <me@mbassem.com>2025-12-07 11:43:14 +0000
commite3cc54636349361a8672dc261973b19680f614e3 (patch)
treef5ed91c426c46ef6279d18d4ecc654e9a827a252
parentcf2a12c8046b29c3fcf315d3a2598555175e1aee (diff)
downloadkarakeep-e3cc54636349361a8672dc261973b19680f614e3.tar.zst
fix: better extraction for youtube thumbnails. #2204
-rw-r--r--apps/workers/package.json1
-rw-r--r--apps/workers/workers/crawlerWorker.ts13
-rw-r--r--pnpm-lock.yaml245
3 files changed, 241 insertions, 18 deletions
diff --git a/apps/workers/package.json b/apps/workers/package.json
index 1b5b2c95..fa7ffeac 100644
--- a/apps/workers/package.json
+++ b/apps/workers/package.json
@@ -41,6 +41,7 @@
"metascraper-title": "^5.49.5",
"metascraper-twitter": "^5.45.6",
"metascraper-url": "^5.49.5",
+ "metascraper-youtube": "^5.49.7",
"node-cron": "^3.0.3",
"node-fetch": "^3.3.2",
"pdf2json": "^3.1.5",
diff --git a/apps/workers/workers/crawlerWorker.ts b/apps/workers/workers/crawlerWorker.ts
index 44f8f0c3..cb55523f 100644
--- a/apps/workers/workers/crawlerWorker.ts
+++ b/apps/workers/workers/crawlerWorker.ts
@@ -26,6 +26,7 @@ import metascraperPublisher from "metascraper-publisher";
import metascraperTitle from "metascraper-title";
import metascraperTwitter from "metascraper-twitter";
import metascraperUrl from "metascraper-url";
+import metascraperYoutube from "metascraper-youtube";
import { crawlerStatusCodeCounter, workerStatsCounter } from "metrics";
import {
fetchWithProxy,
@@ -125,6 +126,18 @@ const metascraperParser = metascraper([
datePublished: true,
}),
metascraperAmazon(),
+ metascraperYoutube({
+ gotOpts: {
+ agent: {
+ http: serverConfig.proxy.httpProxy
+ ? new HttpProxyAgent(getRandomProxy(serverConfig.proxy.httpProxy))
+ : undefined,
+ https: serverConfig.proxy.httpsProxy
+ ? new HttpsProxyAgent(getRandomProxy(serverConfig.proxy.httpsProxy))
+ : undefined,
+ },
+ },
+ }),
metascraperReddit(),
metascraperAuthor(),
metascraperPublisher(),
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d87dc5ff..eb8507f4 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -780,7 +780,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.4))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.4))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
apps/workers:
dependencies:
@@ -892,6 +892,9 @@ importers:
metascraper-url:
specifier: ^5.49.5
version: 5.49.5(postcss@8.5.6)
+ metascraper-youtube:
+ specifier: ^5.49.7
+ version: 5.49.7(postcss@8.5.6)
node-cron:
specifier: ^3.0.3
version: 3.0.3
@@ -1059,7 +1062,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
packages/benchmarks:
dependencies:
@@ -1185,7 +1188,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
packages/open-api:
dependencies:
@@ -1238,7 +1241,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
packages/sdk:
dependencies:
@@ -1321,7 +1324,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
packages/shared-react:
dependencies:
@@ -1438,7 +1441,7 @@ importers:
version: 4.3.2(typescript@5.9.3)(vite@7.0.6(@types/node@22.15.30)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0)
tooling/github: {}
@@ -1510,6 +1513,9 @@ packages:
graphql:
optional: true
+ '@acemir/cssom@0.9.27':
+ resolution: {integrity: sha512-Ja8SQ/4mec5WZABC1F9XB1juJlkdHVZ4F1dftBmXagtZnbmspW+tuzd4bo35eRrc48iAEtk1yTUzBveOsa/MZA==}
+
'@algolia/autocomplete-core@1.17.9':
resolution: {integrity: sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==}
@@ -1612,6 +1618,9 @@ packages:
'@asamuzakjp/dom-selector@6.7.3':
resolution: {integrity: sha512-kiGFeY+Hxf5KbPpjRLf+ffWbkos1aGo8MBfd91oxS3O57RgU3XhZrt/6UzoVF9VMpWbC3v87SRc9jxGrc9qHtQ==}
+ '@asamuzakjp/dom-selector@6.7.6':
+ resolution: {integrity: sha512-hBaJER6A9MpdG3WgdlOolHmbOYvSk46y7IQN/1+iqiCuUu6iWdQrs9DGKF8ocqsEqWujWf/V7b7vaDgiUmIvUg==}
+
'@asamuzakjp/nwsapi@2.3.9':
resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==}
@@ -4001,6 +4010,10 @@ packages:
resolution: {integrity: sha512-VbXquXB+U9g84XaazoTHF3MMVqnxBDnEAUfnpRnj7w2GV4imlqxjLgWlfixWtkcuR859mUEszniuxJ/L0NBXyw==}
engines: {node: '>= 16'}
+ '@metascraper/helpers@5.49.7':
+ resolution: {integrity: sha512-WNEv8QfeG7zwcagcc+vdn2dFkR1Uq1BfqJZhoJQgrJQnxQzqtzEDTQOH7JwEb2unThOEYDoHfA1gS7RpKp+tcQ==}
+ engines: {node: '>= 16'}
+
'@microsoft/api-extractor-model@7.30.6':
resolution: {integrity: sha512-znmFn69wf/AIrwHya3fxX6uB5etSIn6vg4Q4RB/tb5VDDs1rqREc+AvMC/p19MUN13CZ7+V/8pkYPTj7q8tftg==}
@@ -7442,6 +7455,10 @@ packages:
resolution: {integrity: sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ==}
engines: {node: '>=20'}
+ cssstyle@5.3.3:
+ resolution: {integrity: sha512-OytmFH+13/QXONJcC75QNdMtKpceNk3u8ThBjyyYjkEcy/ekBwR1mMAuNvi3gdBPW3N5TlCzQ0WZw8H0lN/bDw==}
+ engines: {node: '>=20'}
+
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
@@ -7518,6 +7535,10 @@ packages:
resolution: {integrity: sha512-j1/FM2sMIG43aVNRe4PZ4h1BgwHeNaU9Eoi3uSmHbc+oZ1bMNu0yVIcAV93/dfiBSfvD9BAKKmyBlb2Y2I5TjA==}
engines: {node: '>= 8'}
+ debug-logfmt@1.4.7:
+ resolution: {integrity: sha512-NzGmPp2Fru8KerWcg4zfiPCC1rspLUPqfH5Duz/ZF49CqO97odSx7eFjBNiOQzNQYfvpEEPrxNjyA436lITQkQ==}
+ engines: {node: '>= 8'}
+
debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
@@ -8846,6 +8867,10 @@ packages:
get-tsconfig@4.10.1:
resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==}
+ get-video-id@3.7.0:
+ resolution: {integrity: sha512-hU5pnODTo87slfs9MUFO3vpJr23AESJHmF20T3ivqQJZ/Wz0W5TxjSrGoyB6X538Shyi6tCCpQSeBoV88F9NYA==}
+ engines: {node: '>=10'}
+
getenv@2.0.0:
resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==}
engines: {node: '>=6'}
@@ -9600,6 +9625,10 @@ packages:
resolution: {integrity: sha512-nWru1N9pHfvN/NWpHpOeUdG1l+0FG4umK0ikZD8wZYpeGmcK45EsxZ34WWPyIeKAH++rxvlCNIIY5V3My2FE6w==}
engines: {node: '>= 4'}
+ is-uri@1.2.12:
+ resolution: {integrity: sha512-dsdV/MQ1enO8kwkPSJcB2TsTNR0GbQI7s2wgx1XQFu6akGJmS/Qo1xjdSmyuivVelltgWC4UyNjAJ7cCaBwY6w==}
+ engines: {node: '>= 4'}
+
is-uri@1.2.7:
resolution: {integrity: sha512-drze7nnbh2ZTHU0InyskqNcyCRH7G6SpC/2F3yFXTa38IL+aeUmYvz/9TRfR1Z4tuMzFGos1tolX8QJmgKEiqA==}
engines: {node: '>= 4'}
@@ -9801,6 +9830,15 @@ packages:
canvas:
optional: true
+ jsdom@27.2.0:
+ resolution: {integrity: sha512-454TI39PeRDW1LgpyLPyURtB4Zx1tklSr6+OFOipsxGUH1WMTvk6C65JQdrj455+DP2uJ1+veBEHTGFKWVLFoA==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+ peerDependencies:
+ canvas: ^3.0.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+
jsesc@3.0.2:
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
engines: {node: '>=6'}
@@ -10173,6 +10211,10 @@ packages:
resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==}
engines: {node: 20 || >=22}
+ lru-cache@11.2.4:
+ resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==}
+ engines: {node: 20 || >=22}
+
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -10439,6 +10481,10 @@ packages:
resolution: {integrity: sha512-0QHMRJCfuU9F7nZDCMf/171WJhk6l1fnQswgaLszchEn/Qg+0K7D0oFj/oPLrQXUxMpt0ViOvfZXMbJl1ObGSw==}
engines: {node: '>= 16'}
+ metascraper-youtube@5.49.7:
+ resolution: {integrity: sha512-ZrOfR50LcWInaFA6Mc6oIKyCgsRWIbKpJMYeFPmC/HnU9LaV1N9bmLgbxMonh3TtmH+zEdpHSIJkTBjVD1JASQ==}
+ engines: {node: '>= 16'}
+
metascraper@5.49.5:
resolution: {integrity: sha512-AbGZ2wQkFxacsl2U01E/c3blWeOceYxnl00QQg9dtZqrnAXjgm/xSxWb4yI3yq3AjDLDsy+7y/fH46VNRhWSkg==}
engines: {node: '>= 16'}
@@ -10893,6 +10939,9 @@ packages:
nan@2.22.2:
resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==}
+ nan@2.24.0:
+ resolution: {integrity: sha512-Vpf9qnVW1RaDkoNKFUvfxqAbtI8ncb8OJlqZ9wwpXzWPEsvsB1nvdUi6oYrHIkQ1Y/tMDnr1h4nczS0VB9Xykg==}
+
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -11039,6 +11088,11 @@ packages:
engines: {node: ^18.17.0 || >=20.5.0}
hasBin: true
+ node-gyp@11.5.0:
+ resolution: {integrity: sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+ hasBin: true
+
node-int64@0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
@@ -12370,6 +12424,9 @@ packages:
re2@1.22.1:
resolution: {integrity: sha512-E4J0EtgyNLdIr0wTg0dQPefuiqNY29KaLacytiUAYYRzxCG+zOkWoUygt1rI+TA1LrhN49/njrfSO1DHtVC5Vw==}
+ re2@1.22.3:
+ resolution: {integrity: sha512-002aE82U91DiaUA16U6vbiJusvPXn1OWiQukOxJkVUTXbzrSuQbFNHYKcGw8QK/uifRCfjl2Hd/vXYDanKkmaQ==}
+
reachable-url@1.8.3:
resolution: {integrity: sha512-qQnVOlFlTHBgFmOC5siHh17fcR9Zu7eNIBO95bJw3+Ln90raTY45h5mmHVmkKsukbA5z6ds/Me631VuQKAf2cw==}
engines: {node: '>=8'}
@@ -13923,6 +13980,9 @@ packages:
tldts-core@7.0.17:
resolution: {integrity: sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==}
+ tldts-core@7.0.19:
+ resolution: {integrity: sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==}
+
tldts-core@7.0.8:
resolution: {integrity: sha512-Ze39mm8EtocSXPbH6cv5rDeBBhehp8OLxWJKZXLEyv2dKMlblJsoAw2gmA0ZaU6iOwNlCZ4LrmaTW1reUQEmJw==}
@@ -13937,6 +13997,10 @@ packages:
resolution: {integrity: sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==}
hasBin: true
+ tldts@7.0.19:
+ resolution: {integrity: sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==}
+ hasBin: true
+
tldts@7.0.8:
resolution: {integrity: sha512-TlGAxavO97fYecdBgnLPoTJtY8MOgpowI/qwIz9HhLjETMQOUjQr6BRQE6WazumppjsgGg4eaVZuMNv4vY5nwQ==}
hasBin: true
@@ -15015,6 +15079,8 @@ snapshots:
'@0no-co/graphql.web@1.1.2': {}
+ '@acemir/cssom@0.9.27': {}
+
'@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0)(search-insights@2.17.3)':
dependencies:
'@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.27.0)(algoliasearch@5.27.0)(search-insights@2.17.3)
@@ -15166,6 +15232,14 @@ snapshots:
is-potential-custom-element-name: 1.0.1
lru-cache: 11.2.2
+ '@asamuzakjp/dom-selector@6.7.6':
+ dependencies:
+ '@asamuzakjp/nwsapi': 2.3.9
+ bidi-js: 1.0.3
+ css-tree: 3.1.0
+ is-potential-custom-element-name: 1.0.1
+ lru-cache: 11.2.4
+
'@asamuzakjp/nwsapi@2.3.9': {}
'@asteasolutions/zod-to-openapi@7.3.3(zod@3.24.2)':
@@ -19100,6 +19174,39 @@ snapshots:
- supports-color
- utf-8-validate
+ '@metascraper/helpers@5.49.7(postcss@8.5.6)':
+ dependencies:
+ audio-extensions: 0.0.0
+ chrono-node: 2.9.0
+ condense-whitespace: 2.0.0
+ data-uri-utils: 1.0.9
+ debug-logfmt: 1.4.7
+ entities: 6.0.1
+ file-extension: 4.0.5
+ has-values: 2.0.1
+ image-extensions: 1.1.0
+ is-relative-url: 3.0.0
+ is-uri: 1.2.12
+ iso-639-3: 2.2.0
+ isostring: 0.0.1
+ jsdom: 27.2.0(postcss@8.5.6)
+ lodash: 4.17.21
+ memoize-one: 6.0.0
+ microsoft-capitalize: 1.0.5
+ mime: 3.0.0
+ normalize-url: 6.1.0
+ re2: 1.22.3
+ smartquotes: 2.3.2
+ tldts: 7.0.19
+ url-regex-safe: 4.0.0(re2@1.22.3)
+ video-extensions: 1.2.0
+ transitivePeerDependencies:
+ - bufferutil
+ - canvas
+ - postcss
+ - supports-color
+ - utf-8-validate
+
'@microsoft/api-extractor-model@7.30.6(@types/node@22.15.30)':
dependencies:
'@microsoft/tsdoc': 0.15.1
@@ -22973,7 +23080,15 @@ snapshots:
'@asamuzakjp/css-color': 3.2.0
rrweb-cssom: 0.8.0
- cssstyle@5.3.1(postcss@8.5.4):
+ cssstyle@5.3.1(postcss@8.5.6):
+ dependencies:
+ '@asamuzakjp/css-color': 4.0.5
+ '@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.6)
+ css-tree: 3.1.0
+ transitivePeerDependencies:
+ - postcss
+
+ cssstyle@5.3.3(postcss@8.5.4):
dependencies:
'@asamuzakjp/css-color': 4.0.5
'@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.4)
@@ -22982,7 +23097,7 @@ snapshots:
- postcss
optional: true
- cssstyle@5.3.1(postcss@8.5.6):
+ cssstyle@5.3.3(postcss@8.5.6):
dependencies:
'@asamuzakjp/css-color': 4.0.5
'@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.6)
@@ -23073,6 +23188,12 @@ snapshots:
null-prototype-object: 1.2.4
pretty-ms: 7.0.1
+ debug-logfmt@1.4.7:
+ dependencies:
+ '@kikobeats/time-span': 1.0.5
+ null-prototype-object: 1.2.4
+ pretty-ms: 7.0.1
+
debug@2.6.9:
dependencies:
ms: 2.0.0
@@ -24503,6 +24624,8 @@ snapshots:
dependencies:
resolve-pkg-maps: 1.0.0
+ get-video-id@3.7.0: {}
+
getenv@2.0.0: {}
github-from-package@0.0.0: {}
@@ -25359,6 +25482,11 @@ snapshots:
parse-uri: 2.0.3
punycode2: 1.0.1
+ is-uri@1.2.12:
+ dependencies:
+ parse-uri: 2.0.3
+ punycode2: 1.0.1
+
is-uri@1.2.7:
dependencies:
parse-uri: 1.0.11
@@ -25614,10 +25742,10 @@ snapshots:
- supports-color
- utf-8-validate
- jsdom@27.0.1(postcss@8.5.4):
+ jsdom@27.0.1(postcss@8.5.6):
dependencies:
'@asamuzakjp/dom-selector': 6.7.3
- cssstyle: 5.3.1(postcss@8.5.4)
+ cssstyle: 5.3.1(postcss@8.5.6)
data-urls: 6.0.0
decimal.js: 10.6.0
html-encoding-sniffer: 4.0.0
@@ -25641,12 +25769,41 @@ snapshots:
- postcss
- supports-color
- utf-8-validate
+
+ jsdom@27.2.0(postcss@8.5.4):
+ dependencies:
+ '@acemir/cssom': 0.9.27
+ '@asamuzakjp/dom-selector': 6.7.6
+ cssstyle: 5.3.3(postcss@8.5.4)
+ data-urls: 6.0.0
+ decimal.js: 10.6.0
+ html-encoding-sniffer: 4.0.0
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.6(supports-color@10.0.0)
+ is-potential-custom-element-name: 1.0.1
+ parse5: 8.0.0
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 6.0.0
+ w3c-xmlserializer: 5.0.0
+ webidl-conversions: 8.0.0
+ whatwg-encoding: 3.1.1
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 15.1.0
+ ws: 8.18.3
+ xml-name-validator: 5.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - postcss
+ - supports-color
+ - utf-8-validate
optional: true
- jsdom@27.0.1(postcss@8.5.6):
+ jsdom@27.2.0(postcss@8.5.6):
dependencies:
- '@asamuzakjp/dom-selector': 6.7.3
- cssstyle: 5.3.1(postcss@8.5.6)
+ '@acemir/cssom': 0.9.27
+ '@asamuzakjp/dom-selector': 6.7.6
+ cssstyle: 5.3.3(postcss@8.5.6)
data-urls: 6.0.0
decimal.js: 10.6.0
html-encoding-sniffer: 4.0.0
@@ -25654,7 +25811,6 @@ snapshots:
https-proxy-agent: 7.0.6(supports-color@10.0.0)
is-potential-custom-element-name: 1.0.1
parse5: 8.0.0
- rrweb-cssom: 0.8.0
saxes: 6.0.0
symbol-tree: 3.2.4
tough-cookie: 6.0.0
@@ -25995,6 +26151,8 @@ snapshots:
lru-cache@11.2.2: {}
+ lru-cache@11.2.4: {}
+
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@@ -26546,6 +26704,19 @@ snapshots:
- supports-color
- utf-8-validate
+ metascraper-youtube@5.49.7(postcss@8.5.6):
+ dependencies:
+ '@metascraper/helpers': 5.49.7(postcss@8.5.6)
+ get-video-id: 3.7.0
+ p-locate: 5.0.0
+ reachable-url: 1.8.3
+ transitivePeerDependencies:
+ - bufferutil
+ - canvas
+ - postcss
+ - supports-color
+ - utf-8-validate
+
metascraper@5.49.5(postcss@8.5.6):
dependencies:
'@metascraper/helpers': 5.49.5(postcss@8.5.6)
@@ -27368,6 +27539,8 @@ snapshots:
nan@2.22.2: {}
+ nan@2.24.0: {}
+
nanoid@3.3.11: {}
napi-build-utils@2.0.0: {}
@@ -27551,6 +27724,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ node-gyp@11.5.0:
+ dependencies:
+ env-paths: 2.2.1
+ exponential-backoff: 3.1.2
+ graceful-fs: 4.2.11
+ make-fetch-happen: 14.0.3
+ nopt: 8.1.0
+ proc-log: 5.0.0
+ semver: 7.7.3
+ tar: 7.4.3
+ tinyglobby: 0.2.14
+ which: 5.0.0
+ transitivePeerDependencies:
+ - supports-color
+
node-int64@0.4.0: {}
node-readfiles@0.2.0:
@@ -28880,6 +29068,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ re2@1.22.3:
+ dependencies:
+ install-artifact-from-github: 1.4.0
+ nan: 2.24.0
+ node-gyp: 11.5.0
+ transitivePeerDependencies:
+ - supports-color
+
reachable-url@1.8.3:
dependencies:
got: 11.8.6
@@ -30972,6 +31168,8 @@ snapshots:
tldts-core@7.0.17: {}
+ tldts-core@7.0.19: {}
+
tldts-core@7.0.8: {}
tldts-experimental@7.0.8:
@@ -30986,6 +31184,10 @@ snapshots:
dependencies:
tldts-core: 7.0.17
+ tldts@7.0.19:
+ dependencies:
+ tldts-core: 7.0.19
+
tldts@7.0.8:
dependencies:
tldts-core: 7.0.8
@@ -31363,6 +31565,13 @@ snapshots:
optionalDependencies:
re2: 1.22.1
+ url-regex-safe@4.0.0(re2@1.22.3):
+ dependencies:
+ ip-regex: 4.3.0
+ tlds: 1.259.0
+ optionalDependencies:
+ re2: 1.22.3
+
url@0.11.4:
dependencies:
punycode: 1.4.1
@@ -31561,7 +31770,7 @@ snapshots:
tsx: 4.20.3
yaml: 2.8.0
- vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.4))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0):
+ vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.4))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0):
dependencies:
'@types/chai': 5.2.2
'@vitest/expect': 3.2.4
@@ -31590,7 +31799,7 @@ snapshots:
'@types/debug': 4.1.12
'@types/node': 22.15.30
happy-dom: 20.0.8
- jsdom: 27.0.1(postcss@8.5.4)
+ jsdom: 27.2.0(postcss@8.5.4)
transitivePeerDependencies:
- jiti
- less
@@ -31605,7 +31814,7 @@ snapshots:
- tsx
- yaml
- vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0):
+ vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.30)(happy-dom@20.0.8)(jiti@2.4.2)(jsdom@27.2.0(postcss@8.5.6))(lightningcss@1.30.1)(sass@1.89.1)(terser@5.41.0)(tsx@4.20.3)(yaml@2.8.0):
dependencies:
'@types/chai': 5.2.2
'@vitest/expect': 3.2.4
@@ -31634,7 +31843,7 @@ snapshots:
'@types/debug': 4.1.12
'@types/node': 22.15.30
happy-dom: 20.0.8
- jsdom: 27.0.1(postcss@8.5.6)
+ jsdom: 27.2.0(postcss@8.5.6)
transitivePeerDependencies:
- jiti
- less