youtubei 1.4.0 → 1.4.1

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.
@@ -18,9 +18,9 @@ const Caption_1 = require("../Caption");
18
18
  * @example
19
19
  * ```js
20
20
  *
21
- * console.log(result.captions.languages.map((l) => `${l.code} - ${l.name}`)); // printing out available languages for captions
21
+ * console.log(video.captions.languages.map((l) => `${l.code} - ${l.name}`)); // printing out available languages for captions
22
22
  *
23
- * console.log(await result.captions.get("en")); // printing out captions of a specific language using language code
23
+ * console.log(await video.captions.get("en")); // printing out captions of a specific language using language code
24
24
  * ```
25
25
  */
26
26
  class VideoCaptions extends Base_1.Base {
@@ -7,16 +7,37 @@ const PlaylistCompact_1 = require("../PlaylistCompact");
7
7
  const VideoCompact_1 = require("../VideoCompact");
8
8
  class ChannelParser {
9
9
  static loadChannel(target, data) {
10
- const { channelId, title, avatar, subscriberCountText, } = data.header.c4TabbedHeaderRenderer;
10
+ var _a, _b, _c;
11
+ let channelId, title, avatar, subscriberCountText, tvBanner, mobileBanner, banner;
12
+ const { c4TabbedHeaderRenderer, pageHeaderRenderer } = data.header;
13
+ if (c4TabbedHeaderRenderer) {
14
+ channelId = c4TabbedHeaderRenderer.channelId;
15
+ title = c4TabbedHeaderRenderer.title;
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;
21
+ }
22
+ else {
23
+ channelId =
24
+ data.contents.twoColumnBrowseResultsRenderer.tabs[0].tabRenderer.endpoint
25
+ .browseEndpoint.browseId;
26
+ title = pageHeaderRenderer.pageTitle;
27
+ const { metadata, image: imageModel, banner: bannerModel, } = pageHeaderRenderer.content.pageHeaderViewModel;
28
+ subscriberCountText =
29
+ metadata.contentMetadataViewModel.metadataRows[1].metadataParts[0].text.content;
30
+ avatar = imageModel.decoratedAvatarViewModel.avatar.avatarViewModel.image.sources;
31
+ banner = bannerModel.imageBannerViewModel.image.sources;
32
+ }
11
33
  target.id = channelId;
12
34
  target.name = title;
13
- target.thumbnails = new common_1.Thumbnails().load(avatar.thumbnails);
35
+ target.thumbnails = new common_1.Thumbnails().load(avatar);
14
36
  target.videoCount = 0; // data not available
15
- target.subscriberCount = subscriberCountText === null || subscriberCountText === void 0 ? void 0 : subscriberCountText.simpleText;
16
- const { tvBanner, mobileBanner, banner } = data.header.c4TabbedHeaderRenderer;
17
- target.banner = new common_1.Thumbnails().load((banner === null || banner === void 0 ? void 0 : banner.thumbnails) || []);
18
- target.tvBanner = new common_1.Thumbnails().load((tvBanner === null || tvBanner === void 0 ? void 0 : tvBanner.thumbnails) || []);
19
- target.mobileBanner = new common_1.Thumbnails().load((mobileBanner === null || mobileBanner === void 0 ? void 0 : mobileBanner.thumbnails) || []);
37
+ target.subscriberCount = subscriberCountText;
38
+ target.banner = new common_1.Thumbnails().load(banner || []);
39
+ target.tvBanner = new common_1.Thumbnails().load(tvBanner || []);
40
+ target.mobileBanner = new common_1.Thumbnails().load(mobileBanner || []);
20
41
  target.shelves = ChannelParser.parseShelves(target, data);
21
42
  return target;
22
43
  }
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./Base"), exports);
14
14
  __exportStar(require("./BaseChannel"), exports);
15
15
  __exportStar(require("./BaseVideo"), exports);
16
+ __exportStar(require("./Caption"), exports);
16
17
  __exportStar(require("./Channel"), exports);
17
18
  __exportStar(require("./Chat"), exports);
18
19
  __exportStar(require("./Client"), exports);
@@ -55,9 +55,9 @@ import { Caption, CaptionLanguage } from "../Caption";
55
55
  * @example
56
56
  * ```js
57
57
  *
58
- * console.log(result.captions.languages.map((l) => `${l.code} - ${l.name}`)); // printing out available languages for captions
58
+ * console.log(video.captions.languages.map((l) => `${l.code} - ${l.name}`)); // printing out available languages for captions
59
59
  *
60
- * console.log(await result.captions.get("en")); // printing out captions of a specific language using language code
60
+ * console.log(await video.captions.get("en")); // printing out captions of a specific language using language code
61
61
  * ```
62
62
  */
63
63
  var VideoCaptions = /** @class */ (function (_super) {
@@ -17,16 +17,37 @@ var ChannelParser = /** @class */ (function () {
17
17
  function ChannelParser() {
18
18
  }
19
19
  ChannelParser.loadChannel = function (target, data) {
20
- var _a = data.header.c4TabbedHeaderRenderer, channelId = _a.channelId, title = _a.title, avatar = _a.avatar, subscriberCountText = _a.subscriberCountText;
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;
23
+ if (c4TabbedHeaderRenderer) {
24
+ channelId = c4TabbedHeaderRenderer.channelId;
25
+ title = c4TabbedHeaderRenderer.title;
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;
31
+ }
32
+ else {
33
+ channelId =
34
+ data.contents.twoColumnBrowseResultsRenderer.tabs[0].tabRenderer.endpoint
35
+ .browseEndpoint.browseId;
36
+ 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;
40
+ avatar = imageModel.decoratedAvatarViewModel.avatar.avatarViewModel.image.sources;
41
+ banner = bannerModel.imageBannerViewModel.image.sources;
42
+ }
21
43
  target.id = channelId;
22
44
  target.name = title;
23
- target.thumbnails = new Thumbnails().load(avatar.thumbnails);
45
+ target.thumbnails = new Thumbnails().load(avatar);
24
46
  target.videoCount = 0; // data not available
25
- target.subscriberCount = subscriberCountText === null || subscriberCountText === void 0 ? void 0 : subscriberCountText.simpleText;
26
- var _b = data.header.c4TabbedHeaderRenderer, tvBanner = _b.tvBanner, mobileBanner = _b.mobileBanner, banner = _b.banner;
27
- target.banner = new Thumbnails().load((banner === null || banner === void 0 ? void 0 : banner.thumbnails) || []);
28
- target.tvBanner = new Thumbnails().load((tvBanner === null || tvBanner === void 0 ? void 0 : tvBanner.thumbnails) || []);
29
- target.mobileBanner = new Thumbnails().load((mobileBanner === null || mobileBanner === void 0 ? void 0 : mobileBanner.thumbnails) || []);
47
+ target.subscriberCount = subscriberCountText;
48
+ target.banner = new Thumbnails().load(banner || []);
49
+ target.tvBanner = new Thumbnails().load(tvBanner || []);
50
+ target.mobileBanner = new Thumbnails().load(mobileBanner || []);
30
51
  target.shelves = ChannelParser.parseShelves(target, data);
31
52
  return target;
32
53
  };
@@ -1,6 +1,7 @@
1
1
  export * from "./Base";
2
2
  export * from "./BaseChannel";
3
3
  export * from "./BaseVideo";
4
+ export * from "./Caption";
4
5
  export * from "./Channel";
5
6
  export * from "./Chat";
6
7
  export * from "./Client";
@@ -14,9 +14,9 @@ interface ConstructorParams {
14
14
  * @example
15
15
  * ```js
16
16
  *
17
- * console.log(result.captions.languages.map((l) => `${l.code} - ${l.name}`)); // printing out available languages for captions
17
+ * console.log(video.captions.languages.map((l) => `${l.code} - ${l.name}`)); // printing out available languages for captions
18
18
  *
19
- * console.log(await result.captions.get("en")); // printing out captions of a specific language using language code
19
+ * console.log(await video.captions.get("en")); // printing out captions of a specific language using language code
20
20
  * ```
21
21
  */
22
22
  export declare class VideoCaptions extends Base {
@@ -1,6 +1,7 @@
1
1
  export * from "./Base";
2
2
  export * from "./BaseChannel";
3
3
  export * from "./BaseVideo";
4
+ export * from "./Caption";
4
5
  export * from "./Channel";
5
6
  export * from "./Chat";
6
7
  export * from "./Client";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "youtubei",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
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",
@@ -63,6 +63,6 @@
63
63
  "homepage": "https://suspiciouslookingowl.github.io/youtubei",
64
64
  "dependencies": {
65
65
  "node-fetch": "2.6.7",
66
- "protobufjs": "7.2.4"
66
+ "protobufjs": "7.2.6"
67
67
  }
68
68
  }