@echovisionlab/youtube-audio 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -34,6 +34,17 @@ copying. See [DISCLOSURE.md](DISCLOSURE.md).
34
34
  YouTube and its private APIs can change independently. Keep failures observable
35
35
  and review YouTube's terms and applicable law for your integration.
36
36
 
37
+ `createYoutubeJsAudioProvider()` is exported separately so browser bundles do
38
+ not accidentally pull the unofficial InnerTube client into application code.
39
+ It rejects live/upcoming video and any source without a finite audio-only byte
40
+ length. The adapter defaults to YouTube.js's `VISIONOS` client because its
41
+ audio-only format currently resolves to a finite direct source and honors
42
+ random-access reads at the beginning, middle, and end of the file in the live
43
+ smoke check. Callers may override `client` when required. YouTube.js and the
44
+ upstream private API can change independently; keep
45
+ resolution failures observable and update this package rather than adding
46
+ fallback scraping to the web application.
47
+
37
48
  ## Development
38
49
 
39
50
  ```sh
@@ -44,6 +55,7 @@ pnpm test:coverage
44
55
  pnpm build
45
56
  pnpm package:verify
46
57
  pnpm package:pack
58
+ YOUTUBE_VIDEO_ID=<authorized-video-id> pnpm smoke:youtube-range
47
59
  ```
48
60
 
49
61
  ## Release
@@ -1 +1 @@
1
- {"version":3,"file":"youtube-js.d.ts","sourceRoot":"","sources":["../src/youtube-js.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EAGrB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,mCAAmC;IAClD,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC;IACjD,wCAAwC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC;IACxC,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,mCAAwC,GAChD,oBAAoB,CA0CtB"}
1
+ {"version":3,"file":"youtube-js.d.ts","sourceRoot":"","sources":["../src/youtube-js.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EACV,oBAAoB,EAGrB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,mCAAmC;IAClD,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC;IACjD,wCAAwC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC;IACxC,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,mCAAwC,GAChD,oBAAoB,CA6CtB"}
@@ -2,7 +2,10 @@ import { Innertube } from 'youtubei.js';
2
2
  import { YoutubeAudioError } from './errors.js';
3
3
  export function createYoutubeJsAudioProvider(options = {}) {
4
4
  let clientPromise;
5
- const clientType = options.client ?? 'IOS';
5
+ // The provider feeds a random-access browser transcoder. VISIONOS currently
6
+ // returns direct audio sources that honor non-zero and end-of-file ranges;
7
+ // IOS sources can resolve successfully while rejecting those reads with 403.
8
+ const clientType = options.client ?? 'VISIONOS';
6
9
  return {
7
10
  async resolve(video, signal) {
8
11
  throwIfAborted(signal);
@@ -1 +1 @@
1
- {"version":3,"file":"youtube-js.js","sourceRoot":"","sources":["../src/youtube-js.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"youtube-js.js","sourceRoot":"","sources":["../src/youtube-js.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,14 @@
1
1
  {
2
2
  "name": "@echovisionlab/youtube-audio",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Authenticated server-side YouTube audio resolution and byte-range proxying.",
5
+ "author": "state303 <state303@dsub.io>",
6
+ "keywords": [
7
+ "youtube",
8
+ "audio",
9
+ "streaming",
10
+ "byte-range"
11
+ ],
5
12
  "license": "PolyForm-Noncommercial-1.0.0",
6
13
  "type": "module",
7
14
  "exports": {
@@ -33,6 +40,7 @@
33
40
  "build:clean": "node ./scripts/clean-dist.mjs",
34
41
  "package:verify": "node ./scripts/verify-package.mjs",
35
42
  "package:pack": "npm pack --dry-run",
43
+ "smoke:youtube-range": "node ./scripts/smoke-youtube-range.mjs",
36
44
  "test": "vitest run",
37
45
  "test:coverage": "vitest run --coverage",
38
46
  "typecheck": "tsc --noEmit"