youtubei 1.5.2 → 1.5.4

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.
@@ -70,7 +70,8 @@ class VideoCaptions extends Base_1.Base {
70
70
  curr.push(new Caption_1.Caption({
71
71
  duration: e.dDurationMs,
72
72
  start: e.tStartMs,
73
- text: (_a = e.segs) === null || _a === void 0 ? void 0 : _a.map((s) => Object.values(s).join("")).join(" "),
73
+ text: (_a = e.segs) === null || _a === void 0 ? void 0 : _a.map((s) => s.utf8).join(),
74
+ segments: e.segs,
74
75
  }));
75
76
  return curr;
76
77
  }, []);
@@ -7,7 +7,7 @@ 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, _d, _e, _f, _g, _h;
10
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
11
11
  let channelId, title, avatar, subscriberCountText, videoCountText, tvBanner, mobileBanner, banner;
12
12
  const { c4TabbedHeaderRenderer, pageHeaderRenderer } = data.header;
13
13
  if (c4TabbedHeaderRenderer) {
@@ -27,8 +27,8 @@ class ChannelParser {
27
27
  title = pageHeaderRenderer.pageTitle;
28
28
  const { metadata, image: imageModel, banner: bannerModel, } = pageHeaderRenderer.content.pageHeaderViewModel;
29
29
  const metadataRow = metadata.contentMetadataViewModel.metadataRows[1];
30
- subscriberCountText = metadataRow.metadataParts[0].text.content;
31
- videoCountText = metadataRow.metadataParts[1].text.content;
30
+ subscriberCountText = metadataRow.metadataParts.find((m) => !m.text.styeRuns).text.content;
31
+ videoCountText = (_j = metadataRow.metadataParts.find((m) => m.text.styeRuns)) === null || _j === void 0 ? void 0 : _j.text.content;
32
32
  avatar = imageModel.decoratedAvatarViewModel.avatar.avatarViewModel.image.sources;
33
33
  banner = bannerModel === null || bannerModel === void 0 ? void 0 : bannerModel.imageBannerViewModel.image.sources;
34
34
  }
@@ -119,7 +119,8 @@ var VideoCaptions = /** @class */ (function (_super) {
119
119
  curr.push(new Caption({
120
120
  duration: e.dDurationMs,
121
121
  start: e.tStartMs,
122
- text: (_a = e.segs) === null || _a === void 0 ? void 0 : _a.map(function (s) { return Object.values(s).join(""); }).join(" "),
122
+ text: (_a = e.segs) === null || _a === void 0 ? void 0 : _a.map(function (s) { return s.utf8; }).join(),
123
+ segments: e.segs,
123
124
  }));
124
125
  return curr;
125
126
  }, []);
@@ -17,9 +17,9 @@ var ChannelParser = /** @class */ (function () {
17
17
  function ChannelParser() {
18
18
  }
19
19
  ChannelParser.loadChannel = function (target, data) {
20
- var _a, _b, _c, _d, _e, _f, _g, _h;
20
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
21
21
  var channelId, title, avatar, subscriberCountText, videoCountText, tvBanner, mobileBanner, banner;
22
- var _j = data.header, c4TabbedHeaderRenderer = _j.c4TabbedHeaderRenderer, pageHeaderRenderer = _j.pageHeaderRenderer;
22
+ var _k = data.header, c4TabbedHeaderRenderer = _k.c4TabbedHeaderRenderer, pageHeaderRenderer = _k.pageHeaderRenderer;
23
23
  if (c4TabbedHeaderRenderer) {
24
24
  channelId = c4TabbedHeaderRenderer.channelId;
25
25
  title = c4TabbedHeaderRenderer.title;
@@ -35,10 +35,10 @@ var ChannelParser = /** @class */ (function () {
35
35
  data.contents.twoColumnBrowseResultsRenderer.tabs[0].tabRenderer.endpoint
36
36
  .browseEndpoint.browseId;
37
37
  title = pageHeaderRenderer.pageTitle;
38
- var _k = pageHeaderRenderer.content.pageHeaderViewModel, metadata = _k.metadata, imageModel = _k.image, bannerModel = _k.banner;
38
+ var _l = pageHeaderRenderer.content.pageHeaderViewModel, metadata = _l.metadata, imageModel = _l.image, bannerModel = _l.banner;
39
39
  var metadataRow = metadata.contentMetadataViewModel.metadataRows[1];
40
- subscriberCountText = metadataRow.metadataParts[0].text.content;
41
- videoCountText = metadataRow.metadataParts[1].text.content;
40
+ subscriberCountText = metadataRow.metadataParts.find(function (m) { return !m.text.styeRuns; }).text.content;
41
+ videoCountText = (_j = metadataRow.metadataParts.find(function (m) { return m.text.styeRuns; })) === null || _j === void 0 ? void 0 : _j.text.content;
42
42
  avatar = imageModel.decoratedAvatarViewModel.avatar.avatarViewModel.image.sources;
43
43
  banner = bannerModel === null || bannerModel === void 0 ? void 0 : bannerModel.imageBannerViewModel.image.sources;
44
44
  }
@@ -3,7 +3,13 @@ interface CaptionProperties {
3
3
  text?: string;
4
4
  start?: number;
5
5
  duration?: number;
6
+ segments?: CaptionSegment[];
6
7
  }
8
+ declare type CaptionSegment = {
9
+ utf8: string;
10
+ tOffsetMs?: number;
11
+ acAsrConf: number;
12
+ };
7
13
  /**
8
14
  * Represent a single video caption entry
9
15
  */
@@ -14,6 +20,8 @@ export declare class Caption implements CaptionProperties {
14
20
  start: number;
15
21
  /** caption duration in milliseconds */
16
22
  duration: number;
23
+ /** caption duration in milliseconds */
24
+ segments: CaptionSegment[];
17
25
  /** @hidden */
18
26
  constructor(attr?: CaptionProperties);
19
27
  /** transcript end time in milliseconds */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "youtubei",
3
- "version": "1.5.2",
3
+ "version": "1.5.4",
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",