youtubei 1.4.1 → 1.4.3
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/dist/cjs/youtube/BaseChannel/BaseChannelParser.js +1 -3
- package/dist/cjs/youtube/Channel/ChannelParser.js +12 -10
- package/dist/esm/youtube/BaseChannel/BaseChannelParser.js +2 -4
- package/dist/esm/youtube/Channel/ChannelParser.js +14 -12
- package/dist/typings/youtube/BaseChannel/BaseChannel.d.ts +0 -3
- package/dist/typings/youtube/Channel/Channel.d.ts +3 -0
- package/package.json +1 -1
|
@@ -4,12 +4,10 @@ exports.BaseChannelParser = void 0;
|
|
|
4
4
|
const common_1 = require("../../common");
|
|
5
5
|
class BaseChannelParser {
|
|
6
6
|
static loadBaseChannel(target, data) {
|
|
7
|
-
|
|
8
|
-
const { channelId, title, thumbnail, videoCountText, subscriberCountText } = data;
|
|
7
|
+
const { channelId, title, thumbnail, subscriberCountText } = data;
|
|
9
8
|
target.id = channelId;
|
|
10
9
|
target.name = title.simpleText;
|
|
11
10
|
target.thumbnails = new common_1.Thumbnails().load(thumbnail.thumbnails);
|
|
12
|
-
target.videoCount = common_1.stripToInt((_a = videoCountText === null || videoCountText === void 0 ? void 0 : videoCountText.runs) === null || _a === void 0 ? void 0 : _a[0].text) || 0; // TODO this sometimes contains subscriber count for some reason
|
|
13
11
|
target.subscriberCount = subscriberCountText === null || subscriberCountText === void 0 ? void 0 : subscriberCountText.simpleText;
|
|
14
12
|
return target;
|
|
15
13
|
}
|
|
@@ -7,17 +7,18 @@ const PlaylistCompact_1 = require("../PlaylistCompact");
|
|
|
7
7
|
const VideoCompact_1 = require("../VideoCompact");
|
|
8
8
|
class ChannelParser {
|
|
9
9
|
static loadChannel(target, data) {
|
|
10
|
-
var _a, _b, _c;
|
|
11
|
-
let channelId, title, avatar, subscriberCountText, tvBanner, mobileBanner, banner;
|
|
10
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
11
|
+
let channelId, title, avatar, subscriberCountText, videoCountText, tvBanner, mobileBanner, banner;
|
|
12
12
|
const { c4TabbedHeaderRenderer, pageHeaderRenderer } = data.header;
|
|
13
13
|
if (c4TabbedHeaderRenderer) {
|
|
14
14
|
channelId = c4TabbedHeaderRenderer.channelId;
|
|
15
15
|
title = c4TabbedHeaderRenderer.title;
|
|
16
16
|
subscriberCountText = (_a = c4TabbedHeaderRenderer.subscriberCountText) === null || _a === void 0 ? void 0 : _a.simpleText;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
videoCountText = (_d = (_c = (_b = c4TabbedHeaderRenderer === null || c4TabbedHeaderRenderer === void 0 ? void 0 : c4TabbedHeaderRenderer.videosCountText) === null || _b === void 0 ? void 0 : _b.runs) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.text;
|
|
18
|
+
avatar = (_e = c4TabbedHeaderRenderer.avatar) === null || _e === void 0 ? void 0 : _e.thumbnails;
|
|
19
|
+
tvBanner = (_f = c4TabbedHeaderRenderer === null || c4TabbedHeaderRenderer === void 0 ? void 0 : c4TabbedHeaderRenderer.tvBanner) === null || _f === void 0 ? void 0 : _f.thumbnails;
|
|
20
|
+
mobileBanner = (_g = c4TabbedHeaderRenderer === null || c4TabbedHeaderRenderer === void 0 ? void 0 : c4TabbedHeaderRenderer.mobileBanner) === null || _g === void 0 ? void 0 : _g.thumbnails;
|
|
21
|
+
banner = (_h = c4TabbedHeaderRenderer === null || c4TabbedHeaderRenderer === void 0 ? void 0 : c4TabbedHeaderRenderer.banner) === null || _h === void 0 ? void 0 : _h.thumbnails;
|
|
21
22
|
}
|
|
22
23
|
else {
|
|
23
24
|
channelId =
|
|
@@ -25,15 +26,16 @@ class ChannelParser {
|
|
|
25
26
|
.browseEndpoint.browseId;
|
|
26
27
|
title = pageHeaderRenderer.pageTitle;
|
|
27
28
|
const { metadata, image: imageModel, banner: bannerModel, } = pageHeaderRenderer.content.pageHeaderViewModel;
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
const metadataRow = metadata.contentMetadataViewModel.metadataRows[1];
|
|
30
|
+
subscriberCountText = metadataRow.metadataParts[0].text.content;
|
|
31
|
+
videoCountText = metadataRow.metadataParts[1].text.content;
|
|
30
32
|
avatar = imageModel.decoratedAvatarViewModel.avatar.avatarViewModel.image.sources;
|
|
31
|
-
banner = bannerModel.imageBannerViewModel.image.sources;
|
|
33
|
+
banner = bannerModel === null || bannerModel === void 0 ? void 0 : bannerModel.imageBannerViewModel.image.sources;
|
|
32
34
|
}
|
|
33
35
|
target.id = channelId;
|
|
34
36
|
target.name = title;
|
|
35
37
|
target.thumbnails = new common_1.Thumbnails().load(avatar);
|
|
36
|
-
target.videoCount =
|
|
38
|
+
target.videoCount = videoCountText;
|
|
37
39
|
target.subscriberCount = subscriberCountText;
|
|
38
40
|
target.banner = new common_1.Thumbnails().load(banner || []);
|
|
39
41
|
target.tvBanner = new common_1.Thumbnails().load(tvBanner || []);
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Thumbnails } from "../../common";
|
|
2
2
|
var BaseChannelParser = /** @class */ (function () {
|
|
3
3
|
function BaseChannelParser() {
|
|
4
4
|
}
|
|
5
5
|
BaseChannelParser.loadBaseChannel = function (target, data) {
|
|
6
|
-
var
|
|
7
|
-
var channelId = data.channelId, title = data.title, thumbnail = data.thumbnail, videoCountText = data.videoCountText, subscriberCountText = data.subscriberCountText;
|
|
6
|
+
var channelId = data.channelId, title = data.title, thumbnail = data.thumbnail, subscriberCountText = data.subscriberCountText;
|
|
8
7
|
target.id = channelId;
|
|
9
8
|
target.name = title.simpleText;
|
|
10
9
|
target.thumbnails = new Thumbnails().load(thumbnail.thumbnails);
|
|
11
|
-
target.videoCount = stripToInt((_a = videoCountText === null || videoCountText === void 0 ? void 0 : videoCountText.runs) === null || _a === void 0 ? void 0 : _a[0].text) || 0; // TODO this sometimes contains subscriber count for some reason
|
|
12
10
|
target.subscriberCount = subscriberCountText === null || subscriberCountText === void 0 ? void 0 : subscriberCountText.simpleText;
|
|
13
11
|
return target;
|
|
14
12
|
};
|
|
@@ -17,33 +17,35 @@ var ChannelParser = /** @class */ (function () {
|
|
|
17
17
|
function ChannelParser() {
|
|
18
18
|
}
|
|
19
19
|
ChannelParser.loadChannel = function (target, data) {
|
|
20
|
-
var _a, _b, _c;
|
|
21
|
-
var channelId, title, avatar, subscriberCountText, tvBanner, mobileBanner, banner;
|
|
22
|
-
var
|
|
20
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
21
|
+
var channelId, title, avatar, subscriberCountText, videoCountText, tvBanner, mobileBanner, banner;
|
|
22
|
+
var _j = data.header, c4TabbedHeaderRenderer = _j.c4TabbedHeaderRenderer, pageHeaderRenderer = _j.pageHeaderRenderer;
|
|
23
23
|
if (c4TabbedHeaderRenderer) {
|
|
24
24
|
channelId = c4TabbedHeaderRenderer.channelId;
|
|
25
25
|
title = c4TabbedHeaderRenderer.title;
|
|
26
26
|
subscriberCountText = (_a = c4TabbedHeaderRenderer.subscriberCountText) === null || _a === void 0 ? void 0 : _a.simpleText;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
videoCountText = (_d = (_c = (_b = c4TabbedHeaderRenderer === null || c4TabbedHeaderRenderer === void 0 ? void 0 : c4TabbedHeaderRenderer.videosCountText) === null || _b === void 0 ? void 0 : _b.runs) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.text;
|
|
28
|
+
avatar = (_e = c4TabbedHeaderRenderer.avatar) === null || _e === void 0 ? void 0 : _e.thumbnails;
|
|
29
|
+
tvBanner = (_f = c4TabbedHeaderRenderer === null || c4TabbedHeaderRenderer === void 0 ? void 0 : c4TabbedHeaderRenderer.tvBanner) === null || _f === void 0 ? void 0 : _f.thumbnails;
|
|
30
|
+
mobileBanner = (_g = c4TabbedHeaderRenderer === null || c4TabbedHeaderRenderer === void 0 ? void 0 : c4TabbedHeaderRenderer.mobileBanner) === null || _g === void 0 ? void 0 : _g.thumbnails;
|
|
31
|
+
banner = (_h = c4TabbedHeaderRenderer === null || c4TabbedHeaderRenderer === void 0 ? void 0 : c4TabbedHeaderRenderer.banner) === null || _h === void 0 ? void 0 : _h.thumbnails;
|
|
31
32
|
}
|
|
32
33
|
else {
|
|
33
34
|
channelId =
|
|
34
35
|
data.contents.twoColumnBrowseResultsRenderer.tabs[0].tabRenderer.endpoint
|
|
35
36
|
.browseEndpoint.browseId;
|
|
36
37
|
title = pageHeaderRenderer.pageTitle;
|
|
37
|
-
var
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
var _k = pageHeaderRenderer.content.pageHeaderViewModel, metadata = _k.metadata, imageModel = _k.image, bannerModel = _k.banner;
|
|
39
|
+
var metadataRow = metadata.contentMetadataViewModel.metadataRows[1];
|
|
40
|
+
subscriberCountText = metadataRow.metadataParts[0].text.content;
|
|
41
|
+
videoCountText = metadataRow.metadataParts[1].text.content;
|
|
40
42
|
avatar = imageModel.decoratedAvatarViewModel.avatar.avatarViewModel.image.sources;
|
|
41
|
-
banner = bannerModel.imageBannerViewModel.image.sources;
|
|
43
|
+
banner = bannerModel === null || bannerModel === void 0 ? void 0 : bannerModel.imageBannerViewModel.image.sources;
|
|
42
44
|
}
|
|
43
45
|
target.id = channelId;
|
|
44
46
|
target.name = title;
|
|
45
47
|
target.thumbnails = new Thumbnails().load(avatar);
|
|
46
|
-
target.videoCount =
|
|
48
|
+
target.videoCount = videoCountText;
|
|
47
49
|
target.subscriberCount = subscriberCountText;
|
|
48
50
|
target.banner = new Thumbnails().load(banner || []);
|
|
49
51
|
target.tvBanner = new Thumbnails().load(tvBanner || []);
|
|
@@ -9,7 +9,6 @@ export interface BaseChannelProperties extends BaseProperties {
|
|
|
9
9
|
id?: string;
|
|
10
10
|
name?: string;
|
|
11
11
|
thumbnails?: Thumbnails;
|
|
12
|
-
videoCount?: number;
|
|
13
12
|
subscriberCount?: string;
|
|
14
13
|
}
|
|
15
14
|
/** Represents a Youtube Channel */
|
|
@@ -19,8 +18,6 @@ export declare class BaseChannel extends Base implements BaseChannelProperties {
|
|
|
19
18
|
name: string;
|
|
20
19
|
/** Thumbnails of this Channel */
|
|
21
20
|
thumbnails?: Thumbnails;
|
|
22
|
-
/** How many video does this channel have */
|
|
23
|
-
videoCount?: number;
|
|
24
21
|
/**
|
|
25
22
|
* How many subscriber does this channel have,
|
|
26
23
|
*
|
|
@@ -7,6 +7,7 @@ export declare type ChannelShelf = Shelf<BaseChannel[] | VideoCompact[] | Playli
|
|
|
7
7
|
};
|
|
8
8
|
/** @hidden */
|
|
9
9
|
interface ChannelProperties extends BaseChannelProperties {
|
|
10
|
+
videoCount?: string;
|
|
10
11
|
banner?: Thumbnails;
|
|
11
12
|
tvBanner?: Thumbnails;
|
|
12
13
|
mobileBanner?: Thumbnails;
|
|
@@ -14,6 +15,8 @@ interface ChannelProperties extends BaseChannelProperties {
|
|
|
14
15
|
}
|
|
15
16
|
/** Represents a Youtube Channel */
|
|
16
17
|
export declare class Channel extends BaseChannel implements ChannelProperties {
|
|
18
|
+
/** How many video does this channel have */
|
|
19
|
+
videoCount?: string;
|
|
17
20
|
banner: Thumbnails;
|
|
18
21
|
mobileBanner: Thumbnails;
|
|
19
22
|
tvBanner: Thumbnails;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "youtubei",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "Simple package to get information from youtube such as videos, playlists, channels, video information & comments, related videos, up next video, and more!",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|