{"_id":"untube","_rev":"29-073a4f7b25e6b6d53b35f87d4131a93a","name":"untube","dist-tags":{"latest":"2.7.1"},"versions":{"1.0.0":{"name":"untube","version":"1.0.0","author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@1.0.0","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"aa84bf3922469a84cd7158ae8f3e266dd803cff6","tarball":"https://registry.npmjs.org/untube/-/untube-1.0.0.tgz","fileCount":15,"integrity":"sha512-zUlFXNBLL44ooDG1peRLYbiWi6ECBzvEA+iC/VqAL3C4wdexOEjJGq0nxRanGhm/U0O3McQb5SLBrPzblMvlag==","signatures":[{"sig":"MEQCIEEtiK1AYeItZQGQLpboIPcJ1Zf9nVbOPRWCtNDTLBopAiBww4cj54hve2TDVUWGy08IB89qQSJtU07W++quyz1++Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":606471},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"254b3765dbb3fc81a6521aee9cda5b49188d28a7","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.7.0","description":"Unduh YouTube dengan mudah ~","directories":{},"_nodeVersion":"24.2.0","dependencies":{"undici":"^7.24.3","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_1.0.0_1773598090171_0.015964067864686404","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"untube","version":"1.0.5","author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@1.0.5","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"7729b445ab159757f3cf1e9e75946532e55b0944","tarball":"https://registry.npmjs.org/untube/-/untube-1.0.5.tgz","fileCount":15,"integrity":"sha512-yT/IaFR3rjc5sltaOg4hllwMkZd/sfeF8RAgGM8hfx4g1MDTrtV1XqLFM8CZnToNrEs0H7aX+s3qzTI48jUC7g==","signatures":[{"sig":"MEUCIQCWAwqZo5jLzF/z25RLHZr0TB5MxcBgVZZGyGW0IaO6IAIgambvahIy6lTDLq3iDVBaUKW8lxha3d1pV6iV5uLbr74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":606471},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2f81f6f4d43c0938ac2021b25fa54f1d8de9faec","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.7.0","description":"Unduh YouTube dengan mudah ~","directories":{},"_nodeVersion":"24.2.0","dependencies":{"undici":"^7.24.3","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_1.0.5_1773600558131_0.8516552089543867","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"untube","version":"1.0.7","author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@1.0.7","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"203410b2d30cb6faa2feb5d85c94e57e965d8681","tarball":"https://registry.npmjs.org/untube/-/untube-1.0.7.tgz","fileCount":15,"integrity":"sha512-iu6vWwQhGLsbjq13ASB2x3mbMZM7FrtQIRVE7htdHIV6BSbz3ZYreS/x4XjVb4KTHYES/6GBI1grve8FFifVcg==","signatures":[{"sig":"MEUCIQD9CiwDgBnRtHi3hf2MvKn1uIFT7ATNeEmkPtB239TLLQIgKVPJq7SHqQGntZ+n3uuPIhWR+gNb4NsPr2Q/HysiwjY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":606543},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0fc25fe03970d43004d939671bed54f8eab4b780","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Unduh YouTube dengan mudah ~","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","tough-cookie":"^6.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_1.0.7_1773600980137_0.9986955702733258","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"untube","version":"1.0.8","author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@1.0.8","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"349188a1ab27a4c565ece5515fde9bf5b8c4039d","tarball":"https://registry.npmjs.org/untube/-/untube-1.0.8.tgz","fileCount":15,"integrity":"sha512-MGqcgU4eTFL6PJ9mPVdeFnn67cTlq5vvk0362bKmahKwc/E8jzabNdvUsj3dcWR/FjgQ2oG5Q0YZo1EEBNTrGw==","signatures":[{"sig":"MEQCICeGVW3iuZkpWdRqN4VpO0qhFWi43GEd0Bd2fVAOuKUwAiBK3cx9n0cfx+9IPlWx4ojCfv83QWWXyFayNpDOj1iKXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@1.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":606470},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9a4b71cc33a4e6b2397d22ea3d2175136a3ddbf2","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Unduh YouTube dengan mudah ~","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_1.0.8_1773601129210_0.5042940230073043","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"untube","version":"1.0.9","keywords":["youtube","yt-dlp","youtube-dl","video-info","metadata","scraper","downloader","innertube","signature-decryption","undici","youtube-api","streaming-url"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@1.0.9","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"bb9093a5d80cd01e89f47e977c378000efbafaba","tarball":"https://registry.npmjs.org/untube/-/untube-1.0.9.tgz","fileCount":15,"integrity":"sha512-NCDEkVCsgWX+qitjXz/qSWGWjzlSzjYfmLwB2WF7N7TuD/JuwwWR1+zwmk21a/XoKPGhP6yPh/6xOwKn3y85Eg==","signatures":[{"sig":"MEQCIEG7UZumswCG8gO10bo5Fvf6Z/5C2AdgROJAVzoJ2yj1AiAcc8qBAQj54SNg7fztS7I2zyT48JGvkav0aE45+kLPNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@1.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":607407},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5eb78de8421a7305c470838c472904749139041b","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata and streaming URL extractor for Node.js. Features automatic signature decryption (n-parameter), proxy support, and cookie management. Ported from yt-dlp.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_1.0.9_1773602562044_0.09607401139584226","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"untube","version":"2.0.0","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.0.0","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"52e018847d51d30b2d233c527df5463736f68d7e","tarball":"https://registry.npmjs.org/untube/-/untube-2.0.0.tgz","fileCount":15,"integrity":"sha512-LQy+fJX4pQRX5SbpgwF4JOkg+jiZQe7d86DZMo/wGlinMvrKZdainU4YLFMd8o3i89ySDsuEplW5Kr31rvp81w==","signatures":[{"sig":"MEUCIQDcIF1mg7Da2UNYRW7QndepliTnye5ULBe6KULg+xTOBAIgBqZKC7czpQ9bTaFF/H5lf3W55oIz9M/LUTs7ycpO9Ek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":610064},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ce83fa12137df2141f2fdd849c7a9cd015a7405f","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata and streaming URL extractor for Node.js. Features automatic signature decryption (n-parameter), proxy support, and cookie management. Ported from yt-dlp.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.0.0_1773605734782_0.38547449610094997","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"untube","version":"2.0.1","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.0.1","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"16cb7b7661ca553f355de5bfa3e0bceb86db6d32","tarball":"https://registry.npmjs.org/untube/-/untube-2.0.1.tgz","fileCount":15,"integrity":"sha512-sl98rnu1hLAqR2a9z9c7fMDvUVAaq0/SIc5RXkRzOnX1uZymDHtfI/O9C2B7XbPPKCSw14DbzlgrJt2ykX/DJw==","signatures":[{"sig":"MEQCIEPc/YxXWeGH3BCuruNtknut93EgI3aArL9+J/kZFm89AiB9xHjC0MQsRChXj/Ijz6oEkdgWXMOI1aewz5pN4FWaCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":610125},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"df15812d11203ef0417f41a289251173183f6aaa","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npx tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata and streaming URL extractor for Node.js. Features automatic signature decryption (n-parameter), proxy support, and cookie management. Ported from yt-dlp.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.0.1_1773821350244_0.9579064404677109","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"untube","version":"2.0.2","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.0.2","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"0ce613d95608649ebef3c765449c85c2eff5ebb4","tarball":"https://registry.npmjs.org/untube/-/untube-2.0.2.tgz","fileCount":15,"integrity":"sha512-Aiy6DjYXKne+kUrudvbpBWVz+ddZxwhPuNjl0UU9k/PQupdRmo8NJM8Z+yKd6kSprCb/ExIUqRNJUuIGcHyVHQ==","signatures":[{"sig":"MEYCIQD1JMKzb87JKKheaRNUw+20v5WX/TDp9VLeTb/re4mRxAIhAKJACV5Ran6g8TEjX2XAryQXhdafFG86DVT1FCiEtQG1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":610119},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"38de6e792f3725d81851f3309d0be86f4221e15f","scripts":{"build":"npx tsc","update-solver":"node scripts/update-solver.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata and streaming URL extractor for Node.js. Features automatic signature decryption (n-parameter), proxy support, and cookie management. Ported from yt-dlp.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.0.2_1773854100593_0.7844906518914452","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"untube","version":"2.1.0","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.1.0","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"25c75ceef6add959773f7da699f6cfeb03d85cd5","tarball":"https://registry.npmjs.org/untube/-/untube-2.1.0.tgz","fileCount":23,"integrity":"sha512-N8pGBqRERAzxMf40K8KFGjO3Cnlrv7rv9DpzsaPvohbBFsZevX57aUAljnZJISOftb2DvUSp4C8HgeOzElSCJQ==","signatures":[{"sig":"MEUCIDsmbSU4lNKGYgHCaDgTHZbNGn3vIdNpVsxAGrvqlEwGAiEA7SugO275HtooeG2dLhHt83oyn2mWO136lqg7B660cqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":640131},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"955ef77a12f6d67c8dc4cc60fb7b548362a1c82e","scripts":{"build":"npx tsc","update-solver":"node scripts/update-solver.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata and streaming URL extractor for Node.js. Features automatic signature decryption (n-parameter), proxy support, and cookie management. Ported from yt-dlp.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.1.0_1773863977264_0.3112804536683267","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"untube","version":"2.1.1","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.1.1","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"2694528319c861d79238b4e3ceb9255b70cfd550","tarball":"https://registry.npmjs.org/untube/-/untube-2.1.1.tgz","fileCount":23,"integrity":"sha512-ejaj5sdhu6xDcYecZsrjn1dSpRvQcLjBnPjpf67kNhbkdZCFacGxjxBK1VpRKG72pmW//9/3GvmVkTdAWplgVw==","signatures":[{"sig":"MEYCIQCzz9/3mlyurVQ1xPcCBQ8Sh0NhDWS1M1u7VdJ+cyU0iwIhAL8fu7/Syk13z7kQc5K9UNJ+hsgeCAqm9vX+74DAQ0OL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":640093},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f86f22cba0c85aa4b794970ef9793f614d88b970","scripts":{"build":"npx tsc","update-solver":"node scripts/update-solver.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata and streaming URL extractor for Node.js. Features automatic signature decryption (n-parameter), proxy support, and cookie management. Ported from yt-dlp.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.1.1_1773864121906_0.8756194790812069","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"untube","version":"2.1.2","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.1.2","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"1b83e5f7e6a7fce8d9ff534f3fb856f6a973cd6a","tarball":"https://registry.npmjs.org/untube/-/untube-2.1.2.tgz","fileCount":23,"integrity":"sha512-ZT4T8sH6H7Matp7M5Dz+09qkF2+5Tt1fsBCkz7RsMiqOq2HORcY4qX0EJ2mumMB1chrYCujHyTZ9AkWhxr7qxw==","signatures":[{"sig":"MEYCIQDpvqaxe+icVka23YOFJVFVbOhu2ptqAvIMArgZ5+PVggIhAJBpVZaQnhLo6dBbozOvcxp9v6Mz5eobo/og59Bk1u+q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":640086},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f4be424c6464906562bac58b3ba7ea7e3b36a5d1","scripts":{"build":"npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata and streaming URL extractor for Node.js. Features automatic signature decryption (n-parameter), proxy support, and cookie management. Ported from yt-dlp.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.1.2_1773864246529_0.8265196184923875","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"untube","version":"2.1.3","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.1.3","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"f8e40c1d42c24581f0c640f60fc07341af19fc6b","tarball":"https://registry.npmjs.org/untube/-/untube-2.1.3.tgz","fileCount":23,"integrity":"sha512-pVF7vvg9YsWyAJUa6EvdwKGs0ZiO2/rSmZnOXzZr+IyhhRS6E6Px39aknprEMKZuQAQIkjdXEtzvmnPNcQ1Tww==","signatures":[{"sig":"MEQCIDr4ucSI80YhbHV5GW55DzWlPpnar8gX17Ew7bhd3rsoAiBL8izmh/3kZd+UJA8ZjU8JamvJCMnIbvPTy5J3MoT0ZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":640088},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8520b7ceebfda801058c5df1f54276235145bb97","scripts":{"build":"npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata and streaming URL extractor for Node.js. Features automatic signature decryption (n-parameter), proxy support, and cookie management. Ported from yt-dlp.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.1.3_1773896876873_0.5433999505366716","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"untube","version":"2.2.0","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.2.0","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"1d5edad1cc2a2fcd214abdc9efd7b833eaf8c00d","tarball":"https://registry.npmjs.org/untube/-/untube-2.2.0.tgz","fileCount":27,"integrity":"sha512-ZS5APV9yjZxyMoYIz+MUGaTjodmP1QBegMz3XnX42247UKWWdKDyzWPpOVeLStn0Lpu92MVH5oLcRprOmKUwuQ==","signatures":[{"sig":"MEUCIQCwHZa5igWMg5P9/a76ULqdjYzEC9udFMomrCQM7TeEOwIgfXC2E6TcZGq4DLmlNt0p1xR/XrwzJLL+2RbuNqPgzrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":653836},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6bbefaab72c8e8b9d6da69da4b847cf4320928f4","scripts":{"build":"npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata and streaming URL extractor for Node.js. Features automatic signature decryption (n-parameter), proxy support, and cookie management. Ported from yt-dlp.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.2.0_1774152634417_0.6614644013883559","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"untube","version":"2.3.0","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.3.0","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"ba2cd14defd90f113720c86ba1767ff39ce8dbde","tarball":"https://registry.npmjs.org/untube/-/untube-2.3.0.tgz","fileCount":27,"integrity":"sha512-OfsBeWFUlP6KB5SOarH3GZ/BgBzthhFNiE4ejOqVq8Ct+u/Zy8PK5u6wlbkQ/xeXuu4rwVpvbgMWI1Fz47v7Gw==","signatures":[{"sig":"MEUCIQDQrPK09e6Dao61GJBt5vVDrIVIsgq7lZcG4DwcddelxQIgUHkSkJuw05WpZhWt9JsYZMgjLoeVfeWVW9v+xs17/Uk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":658039},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ce852511356c983191b44fad8fe8fad08638635d","scripts":{"build":"npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata and streaming URL extractor for Node.js. Features automatic signature decryption (n-parameter), proxy support, and cookie management. Ported from yt-dlp.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.3.0_1774155647347_0.851715079513073","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"untube","version":"2.4.0","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.4.0","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"542074cffcb62200b3a881c1b6886f535b13d1a0","tarball":"https://registry.npmjs.org/untube/-/untube-2.4.0.tgz","fileCount":27,"integrity":"sha512-t09jfvfOSMQR9LqKrupW2h+tqGUWh3k8Egy/Jm/NKyABJpmzY2qBRVb9rZ3BG6GlEX4lC06DbCpVTHO/ehJH9g==","signatures":[{"sig":"MEUCIGENPiPdFwQ6Ds/lLRPKuadf/wXBiVYYCzxxvPrV9V44AiEAuOMFxBl9Hh0mPg70Ce0GsDu9Th1+7cSmUg47CHbv528=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118938},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"626dd5ec1827e6d153358cb21b87bc09d7ed9d3e","scripts":{"build":"npx tsc","prepare":"npm run build","update-solver":"tsx scripts/update-solver.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.4.0_1774206178193_0.04564782082391594","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"untube","version":"2.4.1","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.4.1","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"4bcd3f8eaece3f6e61981e7566a1e329510f96ee","tarball":"https://registry.npmjs.org/untube/-/untube-2.4.1.tgz","fileCount":27,"integrity":"sha512-KVzwSDfwCvX0skSsVuTTp7vCJy5aKhil66P6CaAVW3RlHGN0nPp3NMSB6fIIMf/v+uM2uYFUbNl/pB6k1iFkMw==","signatures":[{"sig":"MEQCIE3Klt+Qj3zHHsOWTS0UjtjT6mZIj34zBMISzKVdhPEzAiAf/IwOAwLbVqUJW8Vg27LAeTcGGkuwbIgTDDtsE77rGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119037},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8b6e1f07b885c1acb44d2e586788592cceab0eeb","scripts":{"build":"npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.4.1_1774207422759_0.07382703036099114","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"untube","version":"2.4.2","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.4.2","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"d324e4f516d8a1ea85010f06d6622884cc818104","tarball":"https://registry.npmjs.org/untube/-/untube-2.4.2.tgz","fileCount":27,"integrity":"sha512-CZ44WjThD1jaL228mMnwNfWBYtpScuCKDMBRnmRY+DR9LCtMB1wVCv/F46vb5lLqgSQvGTx9YCiLuhRi5OlZIQ==","signatures":[{"sig":"MEUCIDEjMSpE2hcWwV81HqDaYlE8AP/+Cd6mnK/hXqACmWCwAiEAiiKT0y/9bXHy0b0KcjtVLNApvnx0gsE6VzpiLL54yu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119716},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9bad7fdd65709d173bdbd3f69789d460e6e9c47d","scripts":{"build":"npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.4.2_1774310818705_0.5828258161494797","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"untube","version":"2.5.0","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.5.0","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"568d3218d13c13d37c320fa2215f9f18ee66171b","tarball":"https://registry.npmjs.org/untube/-/untube-2.5.0.tgz","fileCount":27,"integrity":"sha512-B8kbMm3FJ4ZgbQ5KA6G2FjYfeRgiv48Q52fuOLb4blXWdVnk5IIW4FAyCZnSTQ0f0PGpsVqRYLVIsdJiwTUNGw==","signatures":[{"sig":"MEUCIDxMqUwbgiD2x/Smw1OF945/b6hT8bZp1b/pC2nzB2tQAiEAvgQlWyHTr7SnJXuG083EQT2yxUBqRwNO7BojiYlYV/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":120146},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"73fff98aca7d23fee64c78871c65bcb224271b1c","scripts":{"build":"npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.5.0_1774311835401_0.81610672979894","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"untube","version":"2.5.1","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.5.1","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"42fdf14482836d1bb3b8b4c62d5ff3a0355fd248","tarball":"https://registry.npmjs.org/untube/-/untube-2.5.1.tgz","fileCount":27,"integrity":"sha512-O8d8jPrlqwotbtSExq+pKal+16XtqDqslmgr1zE1hqGuEurfyDOHRE+eCRX/49510odneK7EZp6lKM+5Dp2ubA==","signatures":[{"sig":"MEUCIQDzzFpUx7g3eGLr0zKAXohx2NAvJLElyB3OMGhTSGswFQIgMiaNAxMiqKwHL6S5hvUFFKOJXEBo6iBXChG6EplPL9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":122565},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6b6f8046ee1c81f83ff058c36342427af3afeb3e","scripts":{"build":"npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.5.1_1774760824459_0.1317523538146408","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"untube","version":"2.5.2","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.5.2","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"8a75836d8be97126ae31fb2c886d0fd5a884d5af","tarball":"https://registry.npmjs.org/untube/-/untube-2.5.2.tgz","fileCount":27,"integrity":"sha512-VS1qU6AoXYrUX/bWRA0P/mtULpEuJIru/jbkdZkbfHtHKMmK0KDBeJfA6PmWJ862/IuOB4o9ZhxVPbC0c4aiHg==","signatures":[{"sig":"MEUCIQCBPoTTzFpJn8KsgA5lPmVtecMtP1+jCSS2ZKqrnf+ubwIgH/bD531grYcmd034gI3vCxb/XQROThR225SjIQhgSM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":123159},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5c29217765abca935cbfb42c07dfffafd7f578cb","scripts":{"build":"npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.9.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"_nodeVersion":"24.14.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.5.2_1774902359424_0.931801780696007","host":"s3://npm-registry-packages-npm-production"}},"2.5.3":{"name":"untube","version":"2.5.3","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.5.3","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"58595867e73737921d84b5feabbdab78b99329d8","tarball":"https://registry.npmjs.org/untube/-/untube-2.5.3.tgz","fileCount":27,"integrity":"sha512-8egEvUhMVnX+bBgEC3QmUwzA+WWLN9rHUaYiV6+W/1+konP1KVEMa+LB+rByRipIOQexn4EMxwuQIPsi8Y82wA==","signatures":[{"sig":"MEUCIQCP9mudOQOP8DP60S3PBZ05oo2HK2VgQd+N1eCIVPnDdgIgPjliOskgn7biJij1O9HvbXBAv9shqfzUJ0HtEsHMkYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":123933},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b30e5ecbf82d228dcb016ac2e51854d7f972a452","scripts":{"build":"npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.11.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"_nodeVersion":"24.14.1","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.5.0","@types/tough-cookie":"^4.0.5"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.5.3_1777705352311_0.3948587279090401","host":"s3://npm-registry-packages-npm-production"}},"2.5.4":{"name":"untube","version":"2.5.4","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.5.4","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"261ec9ca70a1d599fba9c97968dd55e5f1bd51c2","tarball":"https://registry.npmjs.org/untube/-/untube-2.5.4.tgz","fileCount":27,"integrity":"sha512-dHpQxA0rPuLPbLy6QMz/FFiLN9T1A0fZIjhJENL7cjB75kCAT5L0AreMPubjEzKiXUs8eNJadSlYi9wN+/pGpg==","signatures":[{"sig":"MEYCIQDIzIKP5L2lhILg0xkotAf3tKko8sZa9FGP/VTQzdvDPAIhAI/97YQ62FuvRxAJxv9lJwg59kvBY1JotrbsXfiFwyv7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":123982},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"aaf77a3e7cbf749089db7df0e3e0e551f963db03","scripts":{"test":"node --test test/*.test.js","build":"rm -rf dist && npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.11.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.5.4_1777705681974_0.8646334220523293","host":"s3://npm-registry-packages-npm-production"}},"2.5.5":{"name":"untube","version":"2.5.5","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.5.5","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"95d6823c4b14a814e9132030ddcc30bef8baab66","tarball":"https://registry.npmjs.org/untube/-/untube-2.5.5.tgz","fileCount":27,"integrity":"sha512-zx8MvfUObzgawEX9J8V+5CbmKNgUknNUsBVbcOgKA4IoSfOJdoFUNOi/BnoomQ4QmFTry5bGaQdNjFBfWeABAw==","signatures":[{"sig":"MEUCIQD4ksLMxkgaxnQ58pUkb8Zl2C7ZAZlsv5jxSoH33668igIgFyJbpSfzwCb8HBrKAmKfK8br8+7WCdt3ACAMzHI8Q8k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":124783},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"16d697c59a1176a6d8518c66d65f56ac64058a81","scripts":{"test":"node --test test/*.test.js","build":"rm -rf dist && npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.13.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.5.5_1780362753561_0.1604401546931551","host":"s3://npm-registry-packages-npm-production"}},"2.5.6":{"name":"untube","version":"2.5.6","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.5.6","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"9cd43dff8a244851baa40a3e34c515d41943f80d","tarball":"https://registry.npmjs.org/untube/-/untube-2.5.6.tgz","fileCount":27,"integrity":"sha512-aRs6jDqdSeNC8iCxKKReLlMtHw1rMtgBdOOMPy+Y5GjOp1OQlX8DlY5hQLd7c6q5nkEmkNFS0RxFWUcssfaorw==","signatures":[{"sig":"MEYCIQC1zwg9s/spuNsTRH/OD+wEHFlmZHE/++646tFshGXIyQIhAO6/lAuWxuqXs9MvAwoEg742OMnJLXJ89fsnrKXyDzgz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":124783},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e38efa2b62a077a443489eab7ce88de65cf4bdef","scripts":{"test":"node --test test/*.test.js","build":"rm -rf dist && npx tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.5.6_1784160563230_0.9064458801359188","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"untube","version":"2.6.0","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.6.0","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"6aa5fe26ab2f26f842466e823be0391dee7b6926","tarball":"https://registry.npmjs.org/untube/-/untube-2.6.0.tgz","fileCount":27,"integrity":"sha512-V49KEpCPiIPEO15i/ljh6hcZtZ3BhTaB33+ChsWinkMcdwRS7Oc/WRCv0DMpFfFdPv6y0rXHINsbIiXvAeOtLg==","signatures":[{"sig":"MEUCIDjw2r/osnJ/2xC2fNSDoFkCrwLdzErJ23C+Ce4/JBjRAiEAo02yzCMIxvIE+z9kp13ZtwPqcfmjM7FVeYDaPnyMfOs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":133497},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"341ee657f6f90595feb419c76973a93cf79753f8","scripts":{"test":"node --test test/*.test.js","build":"node -e \"fs.rmSync('dist', { recursive: true, force: true })\" && tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.6.0_1784973605731_0.06074373720655579","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"untube","version":"2.6.1","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.6.1","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"561076e5b0867e99165cc3becfa0007076e11cb5","tarball":"https://registry.npmjs.org/untube/-/untube-2.6.1.tgz","fileCount":27,"integrity":"sha512-yuzZVU4J4weQsYYB/xPy7HawlCR75mGr2cscVkv4JKUo8See5uWbRh3681pqA8o6jUU8/mbw6gExv5og891Apg==","signatures":[{"sig":"MEQCIHP303clsnLs6z+g/EzBCWS1EhTixdYkXzKegVseYkOiAiBtoJIAMtVIIw1n3d9JjEemQleHwg7hW2ys2LGp3HpS2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":134887},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"89b1edb4801078a0b80463d3f9f3564cf724419c","scripts":{"test":"node --test test/*.test.js","build":"node -e \"fs.rmSync('dist', { recursive: true, force: true })\" && tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.6.1_1785049648699_0.09868525008560147","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"untube","version":"2.6.2","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.6.2","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"a992aa28982ef6041b048ca117a26cc62608ab25","tarball":"https://registry.npmjs.org/untube/-/untube-2.6.2.tgz","fileCount":27,"integrity":"sha512-8+ZnWrAgQ9IdUzObYJWWbcBnvEzKCCepTsJR4Ewqj130pbkoWaFww7CECJCwEjFlLErOTECqXvRLh9vFUYE1wA==","signatures":[{"sig":"MEUCIQDYNBZDdt4JomR2ZfzO8mgP02TxvRVCpPnv2Rk0OjfBqQIgehzYZ018LquHWJJ+s18zhmEbHN9BCoZy02hRVAmqhIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":135397},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8d2764678571223e96e5374acde6c3ad037a12a3","scripts":{"test":"node --test test/*.test.js","build":"node -e \"fs.rmSync('dist', { recursive: true, force: true })\" && tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.17.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.6.2_1787216954100_0.40819410708431314","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"untube","version":"2.7.0","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","_id":"untube@2.7.0","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"homepage":"https://github.com/aaf-30/untube#readme","bugs":{"url":"https://github.com/aaf-30/untube/issues"},"dist":{"shasum":"e8a559171dda310a0285410a8d1a37f89ce0ca43","tarball":"https://registry.npmjs.org/untube/-/untube-2.7.0.tgz","fileCount":27,"integrity":"sha512-dpydaXFTzj6FbdWlXXSQ0ft0cVRXEi5w5uip6enUvy2wrlOkLOaH1iUIaGbR5jkZxY4JpPlblWS4Q/l1EJLYTg==","signatures":[{"sig":"MEQCIADdaUaszYzvtx6YP6rjTmdPfVCdZ/ZTh0Hi/uf7cDRtAiA2aWirLzC3DLkNTly3DT5XbFZMjyzV169jehjK370gsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143673},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"320651ce1e0d7e83bfd02fe7bbc73e87ac768507","scripts":{"test":"node --test test/*.test.js","build":"node -e \"fs.rmSync('dist', { recursive: true, force: true })\" && tsc","prepare":"npm run build","update-solver":"node scripts/update-solver.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"repository":{"url":"git+https://github.com/aaf-30/untube.git","type":"git"},"_npmVersion":"11.17.0","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"undici":"^7.24.3","astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/untube_2.7.0_1787223087162_0.035715057413689744","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"untube","version":"2.7.1","description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"license":"Unlicense","author":{"name":"Achmad Al Fandi"},"type":"module","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/aaf-30/untube.git"},"bugs":{"url":"https://github.com/aaf-30/untube/issues"},"homepage":"https://github.com/aaf-30/untube#readme","engines":{"node":">=20.18.1"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"node -e \"fs.rmSync('dist', { recursive: true, force: true })\" && tsc","update-solver":"node scripts/update-solver.js","prepare":"npm run build","test":"node --test test/*.test.js"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.9.3"},"dependencies":{"astring":"^1.9.0","meriyah":"^7.1.0","p-limit":"^7.3.0","tough-cookie":"^6.0.1","undici":"^7.24.3"},"gitHead":"33978924f81c4281f57fec364baa10e9031b655a","_id":"untube@2.7.1","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-asmzaxYN+OPynOl3yxVB1XSIx1rQ3k6IgSTc42DSFRXdEO0MO7E8QEi9+4kaURnIN2wrh3cTSpnv5nMFmIVnag==","shasum":"ce415b0642b068e9ac3299f9146f58254b3e2943","tarball":"https://registry.npmjs.org/untube/-/untube-2.7.1.tgz","fileCount":27,"unpackedSize":143592,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/untube@2.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCLr15rlxYrpjEClW/vka4td86heEO+HfKXXt8+YkF22gIhAOD5htuv2lcRsz8cm/GhkockDzRnEb2ufhEk1X/rNKJi"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25fee793-0558-4626-bb07-78e388a3fabb"}},"directories":{},"maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/untube_2.7.1_1787268780016_0.6414709090664472"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-15T18:08:10.170Z","modified":"2026-08-20T23:33:00.517Z","1.0.0":"2026-03-15T18:08:10.315Z","1.0.5":"2026-03-15T18:49:18.320Z","1.0.7":"2026-03-15T18:56:20.287Z","1.0.8":"2026-03-15T18:58:49.360Z","1.0.9":"2026-03-15T19:22:42.182Z","2.0.0":"2026-03-15T20:15:34.970Z","2.0.1":"2026-03-18T08:09:10.388Z","2.0.2":"2026-03-18T17:15:00.750Z","2.1.0":"2026-03-18T19:59:37.411Z","2.1.1":"2026-03-18T20:02:02.085Z","2.1.2":"2026-03-18T20:04:06.722Z","2.1.3":"2026-03-19T05:07:57.024Z","2.2.0":"2026-03-22T04:10:34.576Z","2.3.0":"2026-03-22T05:00:47.502Z","2.4.0":"2026-03-22T19:02:58.345Z","2.4.1":"2026-03-22T19:23:42.884Z","2.4.2":"2026-03-24T00:06:58.872Z","2.5.0":"2026-03-24T00:23:55.556Z","2.5.1":"2026-03-29T05:07:04.590Z","2.5.2":"2026-03-30T20:25:59.573Z","2.5.3":"2026-05-02T07:02:32.460Z","2.5.4":"2026-05-02T07:08:02.159Z","2.5.5":"2026-06-02T01:12:33.685Z","2.5.6":"2026-07-16T00:09:23.379Z","2.6.0":"2026-07-25T10:00:05.997Z","2.6.1":"2026-07-26T07:07:28.906Z","2.6.2":"2026-08-20T09:09:14.278Z","2.7.0":"2026-08-20T10:51:27.352Z","2.7.1":"2026-08-20T23:33:00.165Z"},"bugs":{"url":"https://github.com/aaf-30/untube/issues"},"author":{"name":"Achmad Al Fandi"},"license":"Unlicense","homepage":"https://github.com/aaf-30/untube#readme","keywords":["youtube","yt-dlp","youtube-dl","metadata","scraper","downloader","innertube","youtube-api"],"repository":{"type":"git","url":"git+https://github.com/aaf-30/untube.git"},"description":"Lightweight YouTube video metadata & streaming URL extractor for Node.js. High reliability ported from yt-dlp","maintainers":[{"name":"achmadalfandi","email":"achmadalfandi53@gmail.com"}],"readme":"# untube\n\n[![npm version](https://img.shields.io/npm/v/untube.svg)](https://www.npmjs.com/package/untube)\n[![npm downloads](https://img.shields.io/npm/dm/untube.svg)](https://www.npmjs.com/package/untube)\n[![node version](https://img.shields.io/node/v/untube.svg)](https://nodejs.org)\n[![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)\n[![Socket Badge](https://socket.dev/api/badge/npm/package/untube)](https://socket.dev/npm/package/untube)\n[![License](https://img.shields.io/npm/l/untube.svg)](LICENSE)\n\nA lightweight, extremely fast YouTube video downloader and metadata scraper for Node.js. Ported from the core extraction logic of [yt-dlp](https://github.com/yt-dlp/yt-dlp).\n\n---\n\n## Table of Contents\n- [Installation](#installation)\n- [Fetching Metadata (Basic Usage)](#fetching-metadata-basic-usage)\n- [Downloading Videos (Streaming)](#downloading-videos-streaming)\n- [Configuration Options](#configuration-options)\n- [Format Selection & Merging](#format-selection--merging)\n- [Format Utilities](#format-utilities)\n- [YouTube Music Search](#youtube-music-search)\n- [Cookie Handling](#cookie-handling)\n- [API Reference](#api-reference)\n- [Disclaimer & License](#disclaimer--license)\n\n---\n\n## Installation\n\n**npm**\n```bash\nnpm install untube\n```\n\n**pnpm**\n```bash\npnpm add untube\n```\n\n**yarn**\n```bash\nyarn add untube\n```\n\n**bun**\n```bash\nbun add untube\n```\n\n---\n\n## Fetching Metadata (Basic Usage)\n\nIf you only need video details without downloading the stream, use `untube.getVideoInfo()`. This is the fastest way to get metadata.\n\n```typescript\nimport untube from 'untube';\n\n// Basic usage\nconst info = await untube.getVideoInfo('dQw4w9WgXcQ');\n\nconsole.log('Title:', info.title);\nconsole.log('Views:', info.view_count);\nconsole.log('Duration:', info.duration, 'seconds');\n\n// With options (e.g., proxy or cookies)\nconst infoWithProxy = await untube.getVideoInfo('dQw4w9WgXcQ', {\n    proxy: 'http://user:pass@host:port',\n    cookies: './cookies.txt'\n});\n```\n\n---\n\n## Downloading Videos (Streaming)\n\n`untube` provides a readable stream that you can pipe anywhere (e.g., to a file, to `fluent-ffmpeg`, or an HTTP response).\n\n```typescript\nimport fs from 'node:fs';\nimport untube from 'untube';\n\n// Setup AbortController to cancel download if needed\nconst controller = new AbortController();\n\n// Start downloading a video\nconst stream = untube('dQw4w9WgXcQ', {\n    format: 'highestvideo', // Select quality\n    signal: controller.signal, // Optional: pass the abort signal\n});\n\n// Listen to events\nstream.on('info', (info, format) => {\n    console.log(`Downloading: ${info.title}`);\n    console.log(`Selected Format: ${format.resolution} (${format.container})`);\n});\n\nstream.on('progress', (progress) => {\n    // Progress event is only available in 'parallel' mode (default)\n    console.log(`Progress: ${progress.percent}% (${progress.downloadedBytes} bytes)`);\n});\n\nstream.on('error', (err) => {\n    console.error(`Error: ${err.message}`);\n});\n\n// Pipe the stream directly to a file\nstream.pipe(fs.createWriteStream('video.mp4'));\n```\n\n---\n\n## Configuration Options\n\n### `untube(id, options)`\n| Option | Type | Default | Description |\n| :--- | :--- | :--- | :--- |\n| `format` | `string` | `'highest'` | Quality preset (e.g., `'highestaudio'`, `'1080p'`) or specific `itag`. |\n| `filter` | `string \\| function` | `undefined` | Filter formats (e.g., `'audioonly'`, `'videoonly'`). |\n| `mode` | `'parallel' \\| 'sequential'` | `'parallel'` | Download strategy. `'parallel'` is faster; `'sequential'` is better for live playback. |\n| `proxy` | `string` | `undefined` | Proxy URL (HTTP/HTTPS). |\n| `cookies` | `string \\| RawCookie` | `undefined` | Path to Netscape cookie file or `RawCookie` instance. |\n| `signal` | `AbortSignal` | `undefined` | Signal to abort the download. |\n\n### `untube.getVideoInfo(id, options)`\n| Option | Type | Default | Description |\n| :--- | :--- | :--- | :--- |\n| `proxy` | `string` | `undefined` | Proxy URL (HTTP/HTTPS). |\n| `cookies` | `string \\| RawCookie` | `undefined` | Path to Netscape cookie file or `RawCookie` instance. |\n\n---\n\n## Format Selection & Merging\n\n> **⚠️ Important Note on Video & Audio:**  \n> YouTube separates most video and audio into different streams (DASH formats). \n> \n> - If you choose a video-only format (like `highestvideo`), the resulting file will **not have sound**. \n> - If you want a single file with both video and audio, you must download the video and audio streams separately and merge them yourself using a tool like **ffmpeg**.\n\n### Common Presets\n- **Presets:** `'highest'`, `'lowest'`, `'highestaudio'`, `'lowestaudio'`, `'highestvideo'`, `'lowestvideo'`.\n- **Resolutions:** `'1080p'`, `'720p'`, etc.\n- **Format ID / itag:** Use specific itags like `'137'` (1080p video-only) or `'140'` (m4a audio).\n\n---\n\n## Format Utilities\n\n`untube` includes utility functions to help you manage and filter formats from the `info` object.\n\n```typescript\nconst info = await untube.getVideoInfo('videoId');\n\n// 1. Filter formats using presets\n// Available presets: 'audioandvideo', 'video', 'videoonly', 'audio', 'audioonly'\nconst audioOnly = untube.filterFormats(info.formats, 'audioonly');\n\n// 2. Filter using custom logic\nconst mp4Only = untube.filterFormats(info.formats, f => f.container === 'mp4');\n\n// 3. Choose a specific format manually\nconst bestAudio = untube.chooseFormat(info.formats, { quality: 'highestaudio' });\n\n// 4. Sort formats from highest to lowest quality\nconst sorted = untube.sortFormats(info.formats);\n```\n\n---\n\n### `untube.ytmusic(query, options)`\nSearch for songs or videos directly from YouTube Music.\n\n```typescript\nimport untube from 'untube';\n\n// Basic usage\nconst results = await untube.ytmusic('Never gonna give you up');\n\n// With options (e.g., proxy or cookies)\nconst resultsWithProxy = await untube.ytmusic('Never gonna give you up', {\n    proxy: 'http://user:pass@host:port',\n    cookies: './cookies.txt'\n});\n\nconsole.log('Top Result:', results[0].title);\nconsole.log('Artist:', results[0].artist);\nconsole.log('Album:', results[0].album);\nconsole.log('Duration:', results[0].duration, 'seconds');\n```\n\n### `untube.ytmusic.getTrackInfo(idOrUrl, options)`\nFetch detailed track metadata (title, artist, album, duration, thumbnails) directly from YouTube Music by track video ID or URL.\n\n```typescript\nimport untube from 'untube';\n// or import { getTrackInfo } from 'untube';\n\n// Fetch track metadata by YouTube Music URL or ID\nconst track = await untube.ytmusic.getTrackInfo('https://music.youtube.com/watch?v=dQw4w9WgXcQ');\n\nconsole.log('Title:', track.title);\nconsole.log('Artist:', track.artist);\nconsole.log('Album:', track.album);\nconsole.log('Duration:', track.duration, 'seconds (', track.duration_string, ')');\nconsole.log('Thumbnail:', track.thumbnail);\n```\n\n---\n\n## Cookie Handling\n\nUsing cookies is highly recommended to avoid rate limits, access age-restricted videos, or bypass regional restrictions.\n\n### 1. Using a File (Netscape format)\nExport cookies in **Netscape format** from your browser (e.g., using \"Get cookies.txt LOCALLY\" extension) and provide the file path:\n```typescript\nuntube('videoId', { cookies: './cookies.txt' });\n```\n\n### 2. Advanced: Remote Storage (Database)\nUse the `RawCookie` class for custom read/write logic (e.g., storing in a database):\n```typescript\nconst myRawCookie = new untube.RawCookie(\n    async () => await fetchFromDB(), // Must return Netscape string\n    async (newCookies) => await saveToDB(newCookies)\n);\nuntube('videoId', { cookies: myRawCookie });\n```\n\n---\n\n## API Reference\n\n### `VideoInfo`\n| Property | Type | Description |\n| :--- | :--- | :--- |\n| `id` | `string` | Video ID. |\n| `title` | `string` | Video title. |\n| `description` | `string` | Video description. |\n| `duration` | `number` | Duration in seconds. |\n| `view_count` | `number` | Total views. |\n| `uploader` | `string` | Channel name. |\n| `thumbnail` | `string` | Highest resolution thumbnail URL. |\n| `formats` | `YouTubeFormat[]` | Array of available formats. |\n| `captions` | `YouTubeCaption[]` | Array of available subtitles. |\n\n### `YouTubeFormat`\n| Property | Type | Description |\n| :--- | :--- | :--- |\n| `format_id` | `string` | The itag of the format. |\n| `ext` | `string` | File extension (e.g., `'mp4'`, `'webm'`). |\n| `resolution` | `string` | e.g., `'1080p'`, `'audio only'`. |\n| `vcodec` | `string` | Video codec. `'none'` for audio-only. |\n| `acodec` | `string` | Audio codec. `'none'` for video-only. |\n| `filesize` | `number \\| null` | File size in bytes. |\n| `url` | `string` | Direct streaming URL (decrypted). |\n\n### `YTMusicTrackInfo`\n| Property | Type | Description |\n| :--- | :--- | :--- |\n| `id` | `string` | YouTube Music track video ID. |\n| `title` | `string` | Track title. |\n| `artist` | `string` | Artist name. |\n| `album` | `string \\| undefined` | Album title if available. |\n| `duration` | `number \\| undefined` | Track duration in seconds. |\n| `duration_string` | `string \\| undefined` | Formatted duration string (e.g., `'3:34'`). |\n| `thumbnail` | `string` | Highest resolution thumbnail URL. |\n| `thumbnails` | `any[]` | Array of available thumbnail objects. |\n| `webpage_url` | `string` | Full YouTube Music webpage URL. |\n\n---\n\n## Disclaimer\n\nThis project is created for educational purposes only. Users are responsible for complying with YouTube's Terms of Service and local copyright laws.\n\n## License\n\nThis project is licensed under the [Unlicense](LICENSE) (Public Domain).\n\n**Note:** While the core codebase is released under the Unlicense, this project relies on open-source dependencies (e.g., `tough-cookie`, `meriyah`, `astring`, etc.) which have their own respective licenses (such as MIT, BSD, etc.). Please ensure compliance with the licenses of these dependencies if you intend to distribute or use this module in a commercial product.\n","readmeFilename":"README.md"}