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.
@@ -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
- var _a;
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
- avatar = (_b = c4TabbedHeaderRenderer.avatar) === null || _b === void 0 ? void 0 : _b.thumbnails;
18
- tvBanner = (_c = c4TabbedHeaderRenderer.tvBanner) === null || _c === void 0 ? void 0 : _c.thumbnails;
19
- mobileBanner = c4TabbedHeaderRenderer.mobileBanner.thumbnails;
20
- banner = c4TabbedHeaderRenderer.banner.thumbnails;
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
- subscriberCountText =
29
- metadata.contentMetadataViewModel.metadataRows[1].metadataParts[0].text.content;
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 = 0; // data not available
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 { stripToInt, Thumbnails } from "../../common";
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 _a;
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 _d = data.header, c4TabbedHeaderRenderer = _d.c4TabbedHeaderRenderer, pageHeaderRenderer = _d.pageHeaderRenderer;
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
- avatar = (_b = c4TabbedHeaderRenderer.avatar) === null || _b === void 0 ? void 0 : _b.thumbnails;
28
- tvBanner = (_c = c4TabbedHeaderRenderer.tvBanner) === null || _c === void 0 ? void 0 : _c.thumbnails;
29
- mobileBanner = c4TabbedHeaderRenderer.mobileBanner.thumbnails;
30
- banner = c4TabbedHeaderRenderer.banner.thumbnails;
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 _e = pageHeaderRenderer.content.pageHeaderViewModel, metadata = _e.metadata, imageModel = _e.image, bannerModel = _e.banner;
38
- subscriberCountText =
39
- metadata.contentMetadataViewModel.metadataRows[1].metadataParts[0].text.content;
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 = 0; // data not available
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.1",
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",