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