Luan
7a39326821
fix(Session): Set default values for hl and gl in context builder
2024-09-17 22:06:03 -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
absidue
e1e76ee616
feat(parser): Add ShortsLockupView and BadgeView nodes ( #746 )
2024-09-13 00:19:46 -03:00
Luan
5a66d0ba93
chore: clean up some types [skip ci]
2024-08-23 02:04:28 -03:00
Luan
2dae5634f3
chore(docs): Minor rewording
2024-08-23 00:51:52 -03:00
Luan
c14a687e65
chore: bump eslint to v9
2024-08-22 15:43:59 -03:00
absidue
7afc3da80e
fix(Session): Fix remote visitor data not gettting used ( #731 )
2024-08-12 00:21:02 -03:00
슈리튬
bb6e647b8c
fix(Session): PoToken not being set correctly ( #729 )
2024-08-11 04:10:23 -03:00
Luan
f1973c11d9
fix(Session): Visitor data not being used properly
2024-08-10 11:12:13 -03:00
Luan
0e91a08ae2
fix(PlayerEndpoint): Don't set undefined fields
2024-08-08 09:01:14 -03:00
Émilien (perso)
c9f0ddd573
feat(Player): Add support for Proof of Identity tokens ( #708 )
...
* Fix different usages of potoken.
* Fix linting.
* Add mention about invidious youtube-trusted-session-generator.
---------
Co-authored-by: Luan <luan.lrt4@gmail.com >
2024-08-08 07:28:42 -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
Dave Nicolson
d85fbc56cf
feat(PlaylistManager): Add ability to remove videos by set ID ( #715 )
2024-08-01 06:07:47 -03:00
Armel Chesnais
04369be620
fix(Player): Address changes introduced by player id 20dfca59 ( #712 )
...
Fixes the nSig extract for YT player id `20dfca59 `
Handles:
String.prototype.split.call(a,("",""))
and
Array.prototype.join.call(b,
("",""))};
Note the newline
Co-authored-by: Luan <luan.lrt4@gmail.com >
2024-07-31 06:38:32 -03:00
Luan
a89a5ac2dd
refactor(Player.ts): Handle nsig failure gracefully
...
Preping for future changes.
2024-07-31 06:18:18 -03:00
Luan
5529a6aca0
chore(Player): Don't throw an error if nsig extraction fails
...
This is called when an InnerTube instance is created, so throwing here breaks the entire library.
2024-07-30 19:05:29 -03:00
Luan
9b9fb82131
refactor: Clean up & fix old code
...
Other changes:
- Renamed "getShortsWatchItem" to "getShortsVideoInfo".
- Fixed `ShortFormVideoInfo`. This never worked for me ever since it was introduced. Turned out it was just implemented incorrectly.
- Moved `basic_info` extraction to `MediaInfo`. Less of a pain to maintain as we only have to modify one file.
- Removed unneeded tsdoc comments.
- Fixed `Innertube#getStreamingData()`. Now it actually returns a deciphered format.
- Simplified some types.
2024-07-30 18:49:24 -03:00
Luan
6765f4e0d7
fix(Player): Bump cache version ( #702 )
...
We should always do this after updating the sig/nsig code, it's so that the old cache gets ignored : ).
2024-07-25 10:48:24 -03:00
absidue
3048f70f60
fix(Player): Fix extracting the n-token decipher algorithm again ( #701 )
2024-07-25 10:07:00 -03:00
absidue
142a7d0428
fix(Player): Fix extracting the n-token decipher algorithm ( #682 )
...
* fix(Player): Fix extracting the n-token decipher algorithm
* fix: bump Jinter to v2
---------
Co-authored-by: Luan <luan.lrt4@gmail.com >
2024-07-10 02:21:39 -03:00
Luan
84f90aaf29
fix(Session): Round UTC offset minutes
2024-07-01 08:53:08 -03:00
Luan
5a8fd3ad37
feat(Session): Add configInfo to InnerTube context
...
Minor addition. It's needed for certain UMP requests.
2024-06-30 22:51:02 -03:00
absidue
bd9f6ac64c
feat(toDash): Add option to include WebVTT or TTML captions ( #673 )
2024-06-25 01:22:11 -03:00
Luan
3939405cc6
chore(Player): Rephrase nsig failure message
2024-06-07 14:26:27 -03:00
Luan
384b80ee41
fix(Cache): Use TextEncoder to encode compressed data
2024-06-05 12:30:12 -03:00
Luan
b588554ce1
chore: update docs [skip ci]
2024-06-03 19:16:41 -03:00
Luan
7953296580
feat(Session): Add enable_session_cache option ( #664 )
...
See https://github.com/LuanRT/YouTube.js/pull/663#issuecomment-2146161637
2024-06-03 19:04:30 -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
absidue
031ffb696e
feat(toDash): Add support for stable volume/DRC ( #662 )
2024-05-28 02:43:10 -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
Brahim Hadriche
7315fca1b4
Add getPlaylists function ( #650 )
2024-04-29 08:09:35 -03:00
Brahim Hadriche
0602dd2c3d
Lint fix ( #651 )
2024-04-29 08:07:24 -03:00
LuanRT
13321888e8
chore(PlayerEndpoint): Remove outdated code
2024-04-29 08:05:59 -03:00
LuanRT
1ec2ea85e2
refactor(Music#getRelated): Return page contents directy
2024-04-19 16:22:21 -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
absidue
7ca2a0c3e4
feat(parser): Support LockupView and it's child nodes ( #609 )
2024-02-29 13:29:53 -03:00
LuanRT
2068dfb73e
fix(Session): Don't try to extract api version from service worker
...
It doesn't make sense to do this anyway because if it ever changed, we'd probably have to refactor the entire library.
Closes #602 , #603 , #604
2024-02-22 22:25:30 -03:00
LuanRT
c7f42220db
chore: revert unneeded import type changes & lint
...
Yes. Again.
2024-01-25 21:17:59 -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
Luan
7ffd0fc25e
feat(OAuth): Allow passing custom client identity ( #566 )
2024-01-08 20:03:01 -03:00
Brahim Hadriche
14578ac96a
feat(YouTube): Add FEchannels feed ( #560 )
2023-12-21 19:00:31 -03:00
LuanRT
5c9c231cc2
feat(MediaInfo): Parse player config
2023-12-01 17:14:36 -03:00
Konstantin
a32aa8c633
feat: Add Shorts endpoint ( #512 )
...
* chore: first try for shorts endpoints
* chore: add shorts to index
* fix: fix code style
* chore: fix suggestions
* fix: fix code style with spaces on curly brackets
* chore: add curly rule to eslint
* chore: run request in parallel
* chore: remove console.logs and add other expect tests
* chore: apply eslint suggestions
* Update ReelPlayerOverlay.ts
* Update VideoInfo.ts
* chore: remove console.log from tests
---------
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com >
Co-authored-by: LuanRT <luan.lrt4@gmail.com >
2023-11-30 22:58:11 -03:00
absidue
95ed60207a
perf: Use named Parser import, to allow bundlers to create direct function references ( #535 )
...
Co-authored-by: Luan <luan.lrt4@gmail.com >
2023-11-30 22:31:59 -03:00
absidue
b50e2001aa
chore: Clean up so unneeded private properties ( #540 )
2023-11-30 22:21:14 -03:00
absidue
c66eb1fecf
feat(Channel): Support new about popup ( #537 )
...
* feat(Channel): Support new about popup
* chore: Minor cleanup
* fix(concatMemos): Merge duplicate nodes instead of overwriting
* fix(Feed): `has_continuation` and `getContinuation()` avoid header continuations
* chore(Channel): Remove unused import
---------
Co-authored-by: LuanRT <luan.lrt4@gmail.com >
2023-11-30 22:06:25 -03:00
Ryan Sandbach
9ab528ec82
feat(Kids): Add blockChannel command to easily block channels ( #503 )
...
* Add blockChannel command to support easily blocking content for supervised accounts.
* Moved blockChannel functionality to the Kids client and updated API docs.
* Fix whitepsace issues.
* Resolve remaining linting errors.
* Avoid changing interaction manager. Remove comment for ToggleButton change.
* chore: clean up
---------
Co-authored-by: LuanRT <luan.lrt4@gmail.com >
2023-10-28 14:28:17 -03:00
LuanRT
24ffb01aef
Merge branch 'main' of https://github.com/LuanRT/YouTube.js
2023-10-28 13:31:10 -03:00