@dracoonghost/trndup-sdk 1.3.18 → 1.3.19

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/index.d.mts CHANGED
@@ -1023,6 +1023,61 @@ declare namespace Insights {
1023
1023
  data: OptimalVideoLengthData;
1024
1024
  _meta: InsightMeta;
1025
1025
  };
1026
+ /** Consistency status levels */
1027
+ type ConsistencyStatus = 'excellent' | 'good' | 'needs_improvement' | 'poor' | 'inactive';
1028
+ /** Monthly upload breakdown */
1029
+ interface MonthlyUploadData {
1030
+ month: string;
1031
+ uploads: number;
1032
+ avgGap: number | null;
1033
+ }
1034
+ /** Upload consistency insight data */
1035
+ interface UploadConsistencyData {
1036
+ /** Period analyzed */
1037
+ period: {
1038
+ start: string;
1039
+ end: string;
1040
+ days: number;
1041
+ };
1042
+ /** Overall consistency score (0-100) */
1043
+ consistencyScore: number;
1044
+ /** Status label */
1045
+ status: ConsistencyStatus;
1046
+ /** Key metrics */
1047
+ metrics: {
1048
+ totalUploads: number;
1049
+ avgDaysBetweenUploads: number;
1050
+ uploadVariance: number;
1051
+ daysSinceLastUpload: number;
1052
+ lastUploadDate: string | null;
1053
+ };
1054
+ /** Upload pattern analysis */
1055
+ pattern: {
1056
+ isRegular: boolean;
1057
+ typicalGap: string;
1058
+ longestStreak: number;
1059
+ currentStreak: number;
1060
+ trend: 'increasing' | 'stable' | 'decreasing';
1061
+ trendDescription: string;
1062
+ };
1063
+ /** Monthly breakdown */
1064
+ monthlyBreakdown: MonthlyUploadData[];
1065
+ /** Frequency recommendation */
1066
+ recommendation: {
1067
+ suggested: string;
1068
+ current: string;
1069
+ reason: string;
1070
+ };
1071
+ /** Human-readable summary */
1072
+ insight: string;
1073
+ /** Actionable recommendations */
1074
+ recommendations: string[];
1075
+ }
1076
+ type UploadConsistencyResponse = (InsufficientDataResponse) | {
1077
+ hasData: true;
1078
+ data: UploadConsistencyData;
1079
+ _meta: InsightMeta;
1080
+ };
1026
1081
  interface AllInsightsData {
1027
1082
  bestPerformingVideo: BestPerformingVideoResponse;
1028
1083
  contentDecay: ContentDecayResponse;
@@ -1031,6 +1086,7 @@ declare namespace Insights {
1031
1086
  fadingHits: FadingHitsResponse;
1032
1087
  audienceFatigue: AudienceFatigueResponse;
1033
1088
  optimalLength: OptimalVideoLengthResponse;
1089
+ uploadConsistency: UploadConsistencyResponse;
1034
1090
  }
1035
1091
  interface AllInsightsResponse {
1036
1092
  data: AllInsightsData;
@@ -1761,6 +1817,40 @@ declare class InsightsModule {
1761
1817
  * GET /v1/insights/youtube/optimal-length
1762
1818
  */
1763
1819
  getYouTubeOptimalLength(): Promise<Insights.OptimalVideoLengthResponse>;
1820
+ /**
1821
+ * Analyze your upload schedule consistency
1822
+ *
1823
+ * Measures how regularly you upload and provides recommendations
1824
+ * for maintaining a consistent schedule that helps algorithm performance.
1825
+ *
1826
+ * @example
1827
+ * ```typescript
1828
+ * const result = await client.insights.getYouTubeUploadConsistency();
1829
+ *
1830
+ * if (result.hasData) {
1831
+ * console.log(`Consistency Score: ${result.data.consistencyScore}/100`);
1832
+ * console.log(`Status: ${result.data.status}`);
1833
+ * console.log(`Avg gap: ${result.data.metrics.avgDaysBetweenUploads} days`);
1834
+ * console.log(`Days since last upload: ${result.data.metrics.daysSinceLastUpload}`);
1835
+ *
1836
+ * // Pattern analysis
1837
+ * console.log(`Pattern: ${result.data.pattern.typicalGap}`);
1838
+ * console.log(`Trend: ${result.data.pattern.trendDescription}`);
1839
+ *
1840
+ * // Recommendation
1841
+ * console.log(`Current: ${result.data.recommendation.current}`);
1842
+ * console.log(`Suggested: ${result.data.recommendation.suggested}`);
1843
+ *
1844
+ * // Monthly breakdown
1845
+ * for (const month of result.data.monthlyBreakdown) {
1846
+ * console.log(`${month.month}: ${month.uploads} uploads`);
1847
+ * }
1848
+ * }
1849
+ * ```
1850
+ *
1851
+ * GET /v1/insights/youtube/upload-consistency
1852
+ */
1853
+ getYouTubeUploadConsistency(): Promise<Insights.UploadConsistencyResponse>;
1764
1854
  /**
1765
1855
  * Get all YouTube insights in one call
1766
1856
  *
@@ -1783,8 +1873,8 @@ declare class InsightsModule {
1783
1873
  * console.log(`Fatigue: ${all.data.audienceFatigue.data.fatigueLevel}`);
1784
1874
  * }
1785
1875
  *
1786
- * if (all.data.optimalLength.hasData) {
1787
- * console.log(`Optimal Length: ${all.data.optimalLength.data.optimalLength.bucket}`);
1876
+ * if (all.data.uploadConsistency.hasData) {
1877
+ * console.log(`Consistency: ${all.data.uploadConsistency.data.consistencyScore}/100`);
1788
1878
  * }
1789
1879
  * ```
1790
1880
  *
package/dist/index.d.ts CHANGED
@@ -1023,6 +1023,61 @@ declare namespace Insights {
1023
1023
  data: OptimalVideoLengthData;
1024
1024
  _meta: InsightMeta;
1025
1025
  };
1026
+ /** Consistency status levels */
1027
+ type ConsistencyStatus = 'excellent' | 'good' | 'needs_improvement' | 'poor' | 'inactive';
1028
+ /** Monthly upload breakdown */
1029
+ interface MonthlyUploadData {
1030
+ month: string;
1031
+ uploads: number;
1032
+ avgGap: number | null;
1033
+ }
1034
+ /** Upload consistency insight data */
1035
+ interface UploadConsistencyData {
1036
+ /** Period analyzed */
1037
+ period: {
1038
+ start: string;
1039
+ end: string;
1040
+ days: number;
1041
+ };
1042
+ /** Overall consistency score (0-100) */
1043
+ consistencyScore: number;
1044
+ /** Status label */
1045
+ status: ConsistencyStatus;
1046
+ /** Key metrics */
1047
+ metrics: {
1048
+ totalUploads: number;
1049
+ avgDaysBetweenUploads: number;
1050
+ uploadVariance: number;
1051
+ daysSinceLastUpload: number;
1052
+ lastUploadDate: string | null;
1053
+ };
1054
+ /** Upload pattern analysis */
1055
+ pattern: {
1056
+ isRegular: boolean;
1057
+ typicalGap: string;
1058
+ longestStreak: number;
1059
+ currentStreak: number;
1060
+ trend: 'increasing' | 'stable' | 'decreasing';
1061
+ trendDescription: string;
1062
+ };
1063
+ /** Monthly breakdown */
1064
+ monthlyBreakdown: MonthlyUploadData[];
1065
+ /** Frequency recommendation */
1066
+ recommendation: {
1067
+ suggested: string;
1068
+ current: string;
1069
+ reason: string;
1070
+ };
1071
+ /** Human-readable summary */
1072
+ insight: string;
1073
+ /** Actionable recommendations */
1074
+ recommendations: string[];
1075
+ }
1076
+ type UploadConsistencyResponse = (InsufficientDataResponse) | {
1077
+ hasData: true;
1078
+ data: UploadConsistencyData;
1079
+ _meta: InsightMeta;
1080
+ };
1026
1081
  interface AllInsightsData {
1027
1082
  bestPerformingVideo: BestPerformingVideoResponse;
1028
1083
  contentDecay: ContentDecayResponse;
@@ -1031,6 +1086,7 @@ declare namespace Insights {
1031
1086
  fadingHits: FadingHitsResponse;
1032
1087
  audienceFatigue: AudienceFatigueResponse;
1033
1088
  optimalLength: OptimalVideoLengthResponse;
1089
+ uploadConsistency: UploadConsistencyResponse;
1034
1090
  }
1035
1091
  interface AllInsightsResponse {
1036
1092
  data: AllInsightsData;
@@ -1761,6 +1817,40 @@ declare class InsightsModule {
1761
1817
  * GET /v1/insights/youtube/optimal-length
1762
1818
  */
1763
1819
  getYouTubeOptimalLength(): Promise<Insights.OptimalVideoLengthResponse>;
1820
+ /**
1821
+ * Analyze your upload schedule consistency
1822
+ *
1823
+ * Measures how regularly you upload and provides recommendations
1824
+ * for maintaining a consistent schedule that helps algorithm performance.
1825
+ *
1826
+ * @example
1827
+ * ```typescript
1828
+ * const result = await client.insights.getYouTubeUploadConsistency();
1829
+ *
1830
+ * if (result.hasData) {
1831
+ * console.log(`Consistency Score: ${result.data.consistencyScore}/100`);
1832
+ * console.log(`Status: ${result.data.status}`);
1833
+ * console.log(`Avg gap: ${result.data.metrics.avgDaysBetweenUploads} days`);
1834
+ * console.log(`Days since last upload: ${result.data.metrics.daysSinceLastUpload}`);
1835
+ *
1836
+ * // Pattern analysis
1837
+ * console.log(`Pattern: ${result.data.pattern.typicalGap}`);
1838
+ * console.log(`Trend: ${result.data.pattern.trendDescription}`);
1839
+ *
1840
+ * // Recommendation
1841
+ * console.log(`Current: ${result.data.recommendation.current}`);
1842
+ * console.log(`Suggested: ${result.data.recommendation.suggested}`);
1843
+ *
1844
+ * // Monthly breakdown
1845
+ * for (const month of result.data.monthlyBreakdown) {
1846
+ * console.log(`${month.month}: ${month.uploads} uploads`);
1847
+ * }
1848
+ * }
1849
+ * ```
1850
+ *
1851
+ * GET /v1/insights/youtube/upload-consistency
1852
+ */
1853
+ getYouTubeUploadConsistency(): Promise<Insights.UploadConsistencyResponse>;
1764
1854
  /**
1765
1855
  * Get all YouTube insights in one call
1766
1856
  *
@@ -1783,8 +1873,8 @@ declare class InsightsModule {
1783
1873
  * console.log(`Fatigue: ${all.data.audienceFatigue.data.fatigueLevel}`);
1784
1874
  * }
1785
1875
  *
1786
- * if (all.data.optimalLength.hasData) {
1787
- * console.log(`Optimal Length: ${all.data.optimalLength.data.optimalLength.bucket}`);
1876
+ * if (all.data.uploadConsistency.hasData) {
1877
+ * console.log(`Consistency: ${all.data.uploadConsistency.data.consistencyScore}/100`);
1788
1878
  * }
1789
1879
  * ```
1790
1880
  *
package/dist/index.js CHANGED
@@ -859,6 +859,47 @@ var InsightsModule = class {
859
859
  );
860
860
  }
861
861
  // =========================================================================
862
+ // YOUTUBE UPLOAD CONSISTENCY
863
+ // =========================================================================
864
+ /**
865
+ * Analyze your upload schedule consistency
866
+ *
867
+ * Measures how regularly you upload and provides recommendations
868
+ * for maintaining a consistent schedule that helps algorithm performance.
869
+ *
870
+ * @example
871
+ * ```typescript
872
+ * const result = await client.insights.getYouTubeUploadConsistency();
873
+ *
874
+ * if (result.hasData) {
875
+ * console.log(`Consistency Score: ${result.data.consistencyScore}/100`);
876
+ * console.log(`Status: ${result.data.status}`);
877
+ * console.log(`Avg gap: ${result.data.metrics.avgDaysBetweenUploads} days`);
878
+ * console.log(`Days since last upload: ${result.data.metrics.daysSinceLastUpload}`);
879
+ *
880
+ * // Pattern analysis
881
+ * console.log(`Pattern: ${result.data.pattern.typicalGap}`);
882
+ * console.log(`Trend: ${result.data.pattern.trendDescription}`);
883
+ *
884
+ * // Recommendation
885
+ * console.log(`Current: ${result.data.recommendation.current}`);
886
+ * console.log(`Suggested: ${result.data.recommendation.suggested}`);
887
+ *
888
+ * // Monthly breakdown
889
+ * for (const month of result.data.monthlyBreakdown) {
890
+ * console.log(`${month.month}: ${month.uploads} uploads`);
891
+ * }
892
+ * }
893
+ * ```
894
+ *
895
+ * GET /v1/insights/youtube/upload-consistency
896
+ */
897
+ async getYouTubeUploadConsistency() {
898
+ return this.client.get(
899
+ "/v1/insights/youtube/upload-consistency"
900
+ );
901
+ }
902
+ // =========================================================================
862
903
  // YOUTUBE ALL INSIGHTS
863
904
  // =========================================================================
864
905
  /**
@@ -883,8 +924,8 @@ var InsightsModule = class {
883
924
  * console.log(`Fatigue: ${all.data.audienceFatigue.data.fatigueLevel}`);
884
925
  * }
885
926
  *
886
- * if (all.data.optimalLength.hasData) {
887
- * console.log(`Optimal Length: ${all.data.optimalLength.data.optimalLength.bucket}`);
927
+ * if (all.data.uploadConsistency.hasData) {
928
+ * console.log(`Consistency: ${all.data.uploadConsistency.data.consistencyScore}/100`);
888
929
  * }
889
930
  * ```
890
931
  *