Commit Graph

59 Commits

Author SHA1 Message Date
Bob Varioa
f52d15cdb0 Make project multiplatform (#91)
* Prefer `c ? x : y` over `c && x || y`

* Avoid unnecessary asssignment expressions

* Prefer switch statements over object lookup tables

* Add an .editorconfig

* Fix style issues

* Fix mentioned issues

* remove dynamic require

* Introduce esbuild as a build system

* Add cross platform stream api

* Replace 'fs' with custom cache api

* Add cross platform crypto api

* Add misc. dependencies

* Create multi-platform tests

* Update package-lock, Add build files

* Pull from upstream

* Fix linting issues, and update build files

* Fix comments issues

* Regenerate types, add source maps

Co-authored-by: bob <bob.varioa@gmail.com>
2022-07-06 16:47:48 -03:00
LuanRT
84d5edb6f0 refactor: rewrite OAuth and Requester (#90)
* chore: update type declarations

* dev: refactor oauth & requester

* chore: tidy things up

* chore: remove unneeded check
2022-07-04 16:34:02 -03:00
LuanRT
1d62e469a9 refactor: rewrite Comments Section logic (#88)
* feat: add core comments section classes

* chore: update type declarations

* chore: fix linter warnings

* style: fix linter

* chore: update tests

* chore(tests): fix typo

* chore(tests): fix typo x2

* fix(tests): `getReplies()` method is only present in `CommentThread` and not `Comment`

* chore(tests): fix comment id path

* chore(tests): remove outdated code

* chore(tests): fix results path

* chore: enforce code style

* chore: update type declarations

* docs: add examples and documentation

* chore(docs): fix paths

* chore(docs): fix more paths

* chore(docs): fix `Comments.js` path

* chore(docs): fix typo

* chore(docs): mention example file

* chore(examples): fix imports

* chore(examples): fix typo
2022-07-02 19:55:33 -03:00
Bob Varioa
0a851bde31 refactor: remove confusing code practices (#87)
* Prefer `c ? x : y` over `c && x || y`

* Avoid unnecessary asssignment expressions

* Prefer switch statements over object lookup tables

* Add an .editorconfig

* Fix style issues

* Fix mentioned issues

Co-authored-by: bob <bob.varioa@gmail.com>
2022-07-01 19:37:59 -03:00
LuanRT
3e2b932844 style: format code 2022-06-29 20:57:16 -03:00
LuanRT
263b4887c3 feat(livechat): add LiveChatPaidSticker action 2022-06-29 19:44:33 -03:00
LuanRT
4f994c338b refactor: rewrite Live Chat logic (#85)
* dev: start LiveChat refactor

* dev: implement simple module system to separate classes

+ add a few Live Chat actions

* dev: add fundamental Live Chat classes

* chore: update type declarations

* feat: finalize Live Chat

Now supporting almost all kinds of messages! Next up: add a ability to send messages.

* chore: update type declarations

* chore: update contributors list

* feat(livechat): add `sendMessage()` method

* chore: remove unneeded files

* style: format code

* chore: remove outdated examples

* chore: update tests

* chore: remove trailing spaces

* chore: remove trailing spaces x2
2022-06-29 16:51:51 -03:00
Daniel Krásný
ef9a22e85a feat(ytmusic): multiple video authors (#83)
Parse all `authors` from a music video. For legacy reasons, `author` key is kept returning the first entry. Definitions updated respectively.
2022-06-27 19:15:47 -03:00
LuanRT
a948c2e480 chore: update issue templates 2022-06-25 03:58:35 -03:00
LuanRT
f5c6dbc63e fix: add PlaylistHeader renderer
#81
2022-06-24 04:26:39 -03:00
LuanRT
7ec6d6dd21 feat: add YouTube livechat renderers
Next up: refactor old livechat parser
2022-06-23 03:46:53 -03:00
LuanRT
d2b3eead41 fix: ItemSection target_id not being parsed 2022-06-23 03:13:15 -03:00
LuanRT
20556970a7 feat(ytmusic): add support for stations in search results, #78 2022-06-22 05:46:33 -03:00
Daniel Wykerd
1681a9b84c feat(player): improved decipher logic (#79)
* feat(player): improved decipher logic

- Improve the deciphering logic for Signatures and NTokens.
- This makes NToken transforms more than 20x faster
- It also improves caching of the player drastically, by only keeping
the processed responses in binary format. Bringing down the cache
per player from 1.8MB to less than 400 bytes

* fix: linting errors

* fix: tests

* refactor: replace TS enum with ordinary JS objects
2022-06-21 14:29:13 -03:00
LuanRT
86291fe1f9 chore: fix typo 2022-06-21 03:35:49 -03:00
LuanRT
6eef4b746b fix(ytmusic): parse nav endpoints only if they exist
#78
2022-06-21 03:34:56 -03:00
LuanRT
36f02cdcdb chore(ytmusic): use optional chaining on duration text 2022-06-20 18:10:35 -03:00
LuanRT
97d4cc1056 feat(ytmusic): add support for retrieving albums 2022-06-20 16:33:51 -03:00
LuanRT
7fc9b526b0 feat(ytmusic): add support for artists
Available through `Innertube#music.getArtist(id: string)`

#78
2022-06-20 06:08:24 -03:00
LuanRT
748e34758f feat: tidy things up and implement more renderers
- Finished Library parser
- Fixed search continuations
- Improved channel parser
- Improved playlist parser
- Added support for posts of type poll
- Improved History parser
- Removed redundant code
2022-06-20 03:02:42 -03:00
LuanRT
4c7a42d8d4 fix: search continuations should return a Search class
Why? To keep things consistent.
2022-06-18 05:16:21 -03:00
LuanRT
1efbef6f49 chore(ytmusic): simplify home feed 2022-06-17 16:32:13 -03:00
LuanRT
98e7afda87 feat: add suppory for YouTube Music's “Explore” tab 2022-06-17 16:17:24 -03:00
LuanRT
e0546944a8 chore: fix typo 2022-06-16 20:14:31 -03:00
LuanRT
d246008eab chore: add other InnerTube API urls 2022-06-16 20:10:11 -03:00
LuanRT
455556ba89 feat: add all watch history feed action renderers 2022-06-16 16:09:29 -03:00
LuanRT
eaa16244d2 fix(analytics): rename old Thumbnail module path 2022-06-16 15:26:00 -03:00
LuanRT
d6bbe8f183 fix(linter): remove unneeded vars and add jsdoc 2022-06-15 23:29:30 -03:00
LuanRT
e8a81084e6 fix(ytmusic): rename old class types 2022-06-15 23:29:30 -03:00
Daniel Wykerd
ec5a2aa7fd fix: decipher 2022-06-15 23:29:30 -03:00
Daniel Wykerd
6d7609c32a feat: download video directly from VideoInfo
As suggested in #45, this also implements a new "best" and
"bestefficiency" format selector.
2022-06-15 23:29:30 -03:00
LuanRT
75e0453f69 fix: stringify ChipCloudChip text
This is required in order for `selectFilter()` to work properly
2022-06-15 19:55:45 -03:00
LuanRT
f6af3faa41 feat: add ThumbnailOverlayInlineUnplayable renderer 2022-06-15 19:36:44 -03:00
LuanRT
3458bb422a feat: add ThumbnailOverlayEndorsement, #75 2022-06-15 19:22:52 -03:00
LuanRT
521029de52 fix: ignore DisplayAd renderer 2022-06-15 19:14:02 -03:00
Daniel Wykerd
4a102878d8 refactor!: feature complete contents parser
* feat: allow setting search params to custom value

This is useful for getting results other than videos, like playlists and
channels.

* feat: add initial parsers for common renderers

* feat: artist search renderers

Added common renderers used when searching artists

* refactor: snake_case

* feat: channel home page renderers

* feat: parsers for more channel tabs

These are needed for channel tabs: Videos, Playlists, Community,
Channels

Additionally, do not merely return text as string, since they may
include links which may be navigated to

* feat: channel full metadata

* feat: renderers for playlists

* refactor!: Actions.browse

Channels should be viewable when not logged in, also added 'navigation'
type for use in NagivationEndpoint in the future.

* feat: home feed parsers

* feat: watch page renderers

* feat: start implementing HomeFeed API

The HomeFeed class remains compatible with the existing API

* feat: generate types using tsc and jsdoc

* feat: browse continuations from navigationEndpoint

* fix: Actions moved to session

This follows commit 1bfe2676d8

* fix: add more typescript config

* chore: use correct spaces and quotes

* feat: Trending API

* feat: reimplement existing channel API

* feat: add base video feed class

* feat: get channel videos

* feat: channel playlists

* feat: get channel community posts

* feat: get channels from channel

* feat: get channel about page data

* feat: add missing channel parsers

this commit also adds regenerated types I've neglected to push

* feat: initial playlist reimplementation

* feat: complete playlist reimplementation

* refactor: change InnertubeError to ES6 class

* fix: some unresolved types

* chore: update types

* feat: wip video details

* feat: get music tracks in video

Possibly an implementation for issue #48

* refactor:  merge parsers (wip)

This is a work in progress.

* fix: add pnpm to ignore

* fix: merge issues

* fix: merge Video and VideoInfo

VideoInfo should be working again.
Also remove the old parsers.

* feat: set matching in Simplify

Still looking into removing Simplify

* fix: ContinuationItem

This `call` method allows for traversal of continuations with the Simplify API
but may be removed in the future

* fix: optionally returned data

* revert: replace ContinuationItem with main

* feat(parser): contents memoization by classname

* feat(channel): working without Simplify

* feat(feed): working continuations

* fix: liniting issues

* feat(feed): filterable feed for home

* feat(feed): tabbed feed for trending & channel

* refactor: remove Simplify completely

* chore: lint

* refactor: alias `items` with `contents`

* refactor: `Search` to extend `Feed`

* fix: Search working

Also added MenuServiceItemDownload

* refactor: move `Channel` and `Playlist`

* fix: pass all tests

* fix: linting errors
2022-06-15 18:31:34 -03:00
LuanRT
43470efb6e chore: remove unused vars - x2 2022-06-15 18:09:25 -03:00
LuanRT
0067ccd438 chore: remove unused vars 2022-06-15 16:49:25 -03:00
LuanRT
62811bd8f1 feat: implement SecondarySearchContainer renderer 2022-06-15 16:46:05 -03:00
LuanRT
3f22a44ba9 feat: accurately emulate like/dislike button clicks 2022-06-13 17:33:39 -03:00
LuanRT
6aa30648fe chore: update type definitions 2022-06-13 16:23:49 -03:00
LuanRT
5f08be7991 feat: add support for retrieving YouTube Music's home feed 2022-06-13 07:38:49 -03:00
LuanRT
b6a898f733 feat: add full support for refinement cards 2022-06-13 04:20:49 -03:00
LuanRT
b3da6b11f8 chore: use null as default value 2022-06-11 08:09:26 -03:00
LuanRT
81bbbaebe2 fix: isn't always available 2022-06-11 08:06:50 -03:00
LuanRT
2254b69670 feat: add support for retrieving YTMusic “related” tab
+ finish lyrics parser and implement all needed YouTube Music renderers
2022-06-11 08:00:58 -03:00
LuanRT
d167a0b807 feat: add support for music search filters 2022-06-10 15:07:23 -03:00
LuanRT
53965630b7 dev: check if renderer should be ignore before parsing
Will mostly be used to ignore ad renderers.
2022-06-10 04:32:24 -03:00
LuanRT
659df51115 feat(VideoInfo): add support for selecting feed filters 2022-06-10 03:00:25 -03:00
LuanRT
dab89545fe chore: remove unused vars 2022-06-10 01:56:22 -03:00