Commit Graph

121 Commits

Author SHA1 Message Date
absidue
c776b9f349 chore(Utils): Replace private static shim property with a variable (#887) 2025-02-08 05:58:01 -03:00
Loyalsoldier
1c1577e85f feat(FormatUtils): choose more specific format by itag or codec (#884) 2025-01-28 15:43:09 -03:00
absidue
7a7139e32d refactor(Constants): Use as const instead of Object.freeze() (#879) 2025-01-20 15:09:56 -03:00
absidue
06887e99fb perf(constants): Move the client name IDs into their own CLIENT_NAME_IDS object (#875) 2025-01-17 07:19:53 -03:00
Luan
4d36655b2d feat(Session): Allow using a fixed user agent for InnerTube requests (#876)
Certain attestation challenges are bound to the user agent (e.g, WebPo), so we can't just use a random one for every request.
2025-01-17 06:06:36 -03:00
absidue
1a3d663cc5 perf: Optimise DASH manifest generation (#870) 2025-01-13 07:43:25 -03:00
absidue
00546909c0 fix(toDash): Fix default audio stream for dubbed movie trailers (#858) 2024-12-31 06:12:21 -03:00
Luan
c61db19f2e feat(getSearchSuggestions): Add optional pq param for better suggestions 2024-12-17 15:23:49 -03:00
Luan
4bf125b6a5 feat: Add MWEB client 2024-12-08 17:11:57 -03:00
Patrick Kan
a7bb981731 refactor: Cookie-based session fixes and minor additions (#821)
* (fix) `on_behalf_of_user` arg not applied

* (feat) `AccountManager#getInfo()`: Add option to fetch full accounts list
2024-11-28 17:44:30 -03:00
absidue
bbaefb12b3 chore(Utils): Bump WEB version constant to latest version (#818) 2024-11-26 01:49:13 -03:00
Luan
4e9d64404e chore(docs): Update API ref 2024-11-22 04:25:16 -03:00
absidue
fc5571629e feat(Log)!: Convert Log class to module (#814) 2024-11-21 21:04:38 -03:00
Luan
7397aa3f64 refactor(parser)!: Implement endpoint/command parsers (#812) 2024-11-21 18:24:16 -03:00
Luan
85d623c463 Merge branch 'main' of https://github.com/LuanRT/YouTube.js 2024-10-28 12:54:22 -03:00
Luan
d84273163f chore: clean up 2024-10-28 12:51:53 -03:00
absidue
a4ef2249ff feat: Support auto-dubbed audio tracks (#786) 2024-10-26 17:54:12 -03:00
Luan
b45609aa0f feat: Add TVHTML5 InnerTube client
+ Update `ANDROID` version.
2024-10-26 17:39:09 -03:00
absidue
5ff30e12de fix(toDash): Fix dash.js 4.x compatibility (#765) 2024-09-25 10:29:26 -03:00
absidue
910c9791e7 feat(ProtoUtils): Add support for creating NextParams (#762) 2024-09-23 17:33:21 -03:00
Émilien (perso)
dd7f5cf778 feat: Add WEB_CREATOR client (#757)
* feat: Add WEB_CREATOR client

* update to latest version WEB_CREATOR https://github.com/iv-org/invidious/pull/4928#issuecomment-2362302280
2024-09-20 08:59:45 -03:00
Émilien (perso)
eaf218f5da feat: Add WEB_EMBEDDED client (#756) 2024-09-19 09:56:23 -03:00
Luan
0a5d3aa76d refactor: Remove old UMP parser (#753) 2024-09-16 08:44:55 -03:00
Luan
94bc596048 refactor: Migrate to ts-proto (#752)
* refactor: Add extracted protos

* refactor: Remove old stuff and update affected code

* chore(package): Update `build:proto` script

* chore(ClientInfo): Rename `androidSdkVersion` to `android_sdk_version`

* chore: remove refs to old proto file

* refactor(sabr_request): Rename `Gw` to `media_type`

* chore(sabr_request): Fix typo in field num

* feat(parser): Parse `video_playback_ustreamer_config` and `server_abr_streaming_url`

* refactor: update protos

* chore(package): streamline clean and build scripts

* chore: update package.json

* chore: update npmignore

* chore(protos): Remove unneeded definitions

See https://github.com/LuanRT/googlevideo for video playback proto definitions.

* chore(package): add `rimraf` dependency
2024-09-16 06:54:29 -03:00
Luan
c14a687e65 chore: bump eslint to v9 2024-08-22 15:43:59 -03:00
Luan
4942992630 refactor: Throw an error if an invalid client is specified 2024-08-08 10:11:38 -03:00
Luan
261f2ac12b feat(Utils): Add UMP parser
Currently not used anywhere in the project, but I figured I'd add it in case anyone wants to make their playback requests look more genuine by using UMP/SABR.
2024-08-08 07:57:14 -03:00
Luan
3b3cf1b2aa refactor(Player): Generate and parse player script's AST (#713)
Notes:
- The Syntax Tree is generated by Jinter (which is built on top of `Acorn`).
- While doing this may be slightly slower than using a regular exp, it is much more reliable (plus we already cache the player functions anyway).
2024-08-01 06:09:27 -03:00
absidue
3153375bca fix(HTTPClient): Adjust more context fields for the iOS client (#705) 2024-07-26 11:15:12 -03:00
absidue
858cdd197c feat(toDash): Add the "dub" role to translated captions (#677) 2024-06-30 23:05:08 -03:00
슈리튬
a19511de24 fix(FormatUtils): Throw an error if download requests fails 2024-06-28 16:45:39 -03:00
absidue
bd9f6ac64c feat(toDash): Add option to include WebVTT or TTML captions (#673) 2024-06-25 01:22:11 -03:00
absidue
e5aab9a9b3 fix(toDash): Fix image representations not being spec compliant (#672) 2024-06-24 15:48:38 -03:00
Luan
67376afae6 chore(Format): Clean up and add some extra fields 2024-06-16 16:22:33 -03:00
Luan
cf29664d37 perf(general): Add session cache and LZW compression (#663)
* feat(utils): Implement LZW compression module

* feat(Session): Implement cache for sessions
This should improve performance quite a bit for those who are not using the `generate_session_locally` option (like me :P).

* refactor(Player): Add LZW compression
This considerably reduces the size of the cache.
2024-06-03 18:21:48 -03:00
Luan
184df79b3a refactor(HTTPClient): Use getCookie fn to get SAPISID token 2024-06-03 17:41:09 -03:00
absidue
031ffb696e feat(toDash): Add support for stable volume/DRC (#662) 2024-05-28 02:43:10 -03:00
LuanRT
c82bb70180 chore(HTTPClient): Remove env check when setting Android headers
These requests are supposed to be proxied, so there's no need to worry about browsers not liking it.
2024-05-23 20:58:37 -03:00
Luan
b6ce5f903f refactor(OAuth2)!: Rewrite auth module (#661)
This is a rewrite of the OAuth2 module to address some bugs and inconsistencies. And since it changes the structure of the credentials, I'm marking this as a breaking change.

Note that you will have to update your existing credentials, that is if you wish to continue using them. Otherwise, simply delete them and sign in again.
2024-05-21 18:47:31 -03:00
absidue
d48b9d0946 chore(HTTPClient): Add X-Youtube-Client-Name and remove X-Origin headers (#645) 2024-04-25 18:04:10 -03:00
absidue
010704929f fix(toDash): Add missing transfer characteristics for h264 streams (#631) 2024-04-09 17:41:08 -03:00
Ayoub
2029aec90d feat: add support of cloudflare workers (#596) 2024-03-31 11:37:06 -03:00
Luan
d589365ea2 fix(PlayerEndpoint): Workaround for "The following content is not available on this app" (Android) (#624)
* chore: Update Android client version and UA

* refactor: Update shorts parameter protobuf

* chore: Update auto generated files

* chore: Add test

* chore: Update comments test id (unrelated)

* chore: Update comments test again (unrelated)
2024-03-31 11:35:12 -03:00
LuanRT
28f53a698d chore: remove API key parameter
No longer needed.
2024-03-25 08:07:49 -03:00
absidue
bff65f8889 feat(Format): Support caption tracks in adaptive formats (#598) 2024-02-22 22:28:16 -03:00
LuanRT
5204b29e81 chore: Lint 2024-01-25 20:47:19 -03:00
LuanRT
cbaa838cee chore: Revert some unneeded import changes 2024-01-25 20:43:19 -03:00
Luan
e86a0daf45 refactor(general): Clean up and add a logger (#587)
* feat(utils): Add logger

* chore: Clean up some classes and add more logging

* chore: Fix conflicts
2024-01-25 19:01:28 -03:00
absidue
6dd03e1658 feat(toDash)!: Add support for generating manifests for Post Live DVR videos (#580)
BREAKING CHANGES: The `duration` property in `StreamingInfo` has been
replaced by the asynchronous `getDuration()` function, as getting the duration
of Post Live DVR videos requires making a fetch request.
2024-01-18 14:51:42 -03:00
absidue
f7b7bbd47a chore(Constants): Update web client version (#582) 2024-01-18 14:40:15 -03:00