@tiangong-ai/cli 0.0.50 → 0.0.55
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/AGENTS.md +22 -2
- package/README.md +200 -7
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/data/builtins.d.ts +1 -0
- package/dist/data/builtins.js +40 -0
- package/dist/data/builtins.js.map +1 -0
- package/dist/data/catalog.d.ts +25 -0
- package/dist/data/catalog.js +305 -0
- package/dist/data/catalog.js.map +1 -0
- package/dist/data/commands.d.ts +9 -0
- package/dist/data/commands.js +307 -0
- package/dist/data/commands.js.map +1 -0
- package/dist/data/connectors/airnow-hourly-observations.d.ts +2 -0
- package/dist/data/connectors/airnow-hourly-observations.js +522 -0
- package/dist/data/connectors/airnow-hourly-observations.js.map +1 -0
- package/dist/data/connectors/airnow-hourly-observations.schemas.d.ts +299 -0
- package/dist/data/connectors/airnow-hourly-observations.schemas.js +188 -0
- package/dist/data/connectors/airnow-hourly-observations.schemas.js.map +1 -0
- package/dist/data/connectors/bluesky-public-posts.d.ts +2 -0
- package/dist/data/connectors/bluesky-public-posts.js +705 -0
- package/dist/data/connectors/bluesky-public-posts.js.map +1 -0
- package/dist/data/connectors/bluesky-public-posts.schemas.d.ts +733 -0
- package/dist/data/connectors/bluesky-public-posts.schemas.js +422 -0
- package/dist/data/connectors/bluesky-public-posts.schemas.js.map +1 -0
- package/dist/data/connectors/epa-eis-records.d.ts +2 -0
- package/dist/data/connectors/epa-eis-records.js +566 -0
- package/dist/data/connectors/epa-eis-records.js.map +1 -0
- package/dist/data/connectors/epa-eis-records.schemas.d.ts +199 -0
- package/dist/data/connectors/epa-eis-records.schemas.js +146 -0
- package/dist/data/connectors/epa-eis-records.schemas.js.map +1 -0
- package/dist/data/connectors/federal-register-documents.d.ts +2 -0
- package/dist/data/connectors/federal-register-documents.js +517 -0
- package/dist/data/connectors/federal-register-documents.js.map +1 -0
- package/dist/data/connectors/federal-register-documents.schemas.d.ts +357 -0
- package/dist/data/connectors/federal-register-documents.schemas.js +243 -0
- package/dist/data/connectors/federal-register-documents.schemas.js.map +1 -0
- package/dist/data/connectors/gdelt-doc-search.d.ts +2 -0
- package/dist/data/connectors/gdelt-doc-search.js +658 -0
- package/dist/data/connectors/gdelt-doc-search.js.map +1 -0
- package/dist/data/connectors/gdelt-doc-search.schemas.d.ts +446 -0
- package/dist/data/connectors/gdelt-doc-search.schemas.js +330 -0
- package/dist/data/connectors/gdelt-doc-search.schemas.js.map +1 -0
- package/dist/data/connectors/gdelt-file-feeds.d.ts +4 -0
- package/dist/data/connectors/gdelt-file-feeds.js +591 -0
- package/dist/data/connectors/gdelt-file-feeds.js.map +1 -0
- package/dist/data/connectors/gdelt-file-feeds.schemas.d.ts +40 -0
- package/dist/data/connectors/gdelt-file-feeds.schemas.js +256 -0
- package/dist/data/connectors/gdelt-file-feeds.schemas.js.map +1 -0
- package/dist/data/connectors/nasa-firms-fire.d.ts +2 -0
- package/dist/data/connectors/nasa-firms-fire.js +578 -0
- package/dist/data/connectors/nasa-firms-fire.js.map +1 -0
- package/dist/data/connectors/nasa-firms-fire.schemas.d.ts +369 -0
- package/dist/data/connectors/nasa-firms-fire.schemas.js +238 -0
- package/dist/data/connectors/nasa-firms-fire.schemas.js.map +1 -0
- package/dist/data/connectors/open-meteo-air-quality.d.ts +2 -0
- package/dist/data/connectors/open-meteo-air-quality.js +401 -0
- package/dist/data/connectors/open-meteo-air-quality.js.map +1 -0
- package/dist/data/connectors/open-meteo-air-quality.schemas.d.ts +335 -0
- package/dist/data/connectors/open-meteo-air-quality.schemas.js +225 -0
- package/dist/data/connectors/open-meteo-air-quality.schemas.js.map +1 -0
- package/dist/data/connectors/open-meteo-flood.d.ts +2 -0
- package/dist/data/connectors/open-meteo-flood.js +446 -0
- package/dist/data/connectors/open-meteo-flood.js.map +1 -0
- package/dist/data/connectors/open-meteo-flood.schemas.d.ts +388 -0
- package/dist/data/connectors/open-meteo-flood.schemas.js +227 -0
- package/dist/data/connectors/open-meteo-flood.schemas.js.map +1 -0
- package/dist/data/connectors/open-meteo-historical-weather.d.ts +2 -0
- package/dist/data/connectors/open-meteo-historical-weather.js +468 -0
- package/dist/data/connectors/open-meteo-historical-weather.js.map +1 -0
- package/dist/data/connectors/open-meteo-historical-weather.schemas.d.ts +420 -0
- package/dist/data/connectors/open-meteo-historical-weather.schemas.js +282 -0
- package/dist/data/connectors/open-meteo-historical-weather.schemas.js.map +1 -0
- package/dist/data/connectors/openaq-air-quality.d.ts +2 -0
- package/dist/data/connectors/openaq-air-quality.js +734 -0
- package/dist/data/connectors/openaq-air-quality.js.map +1 -0
- package/dist/data/connectors/openaq-air-quality.schemas.d.ts +1067 -0
- package/dist/data/connectors/openaq-air-quality.schemas.js +512 -0
- package/dist/data/connectors/openaq-air-quality.schemas.js.map +1 -0
- package/dist/data/connectors/regulations-gov-attachments.d.ts +2 -0
- package/dist/data/connectors/regulations-gov-attachments.js +486 -0
- package/dist/data/connectors/regulations-gov-attachments.js.map +1 -0
- package/dist/data/connectors/regulations-gov-attachments.schemas.d.ts +270 -0
- package/dist/data/connectors/regulations-gov-attachments.schemas.js +181 -0
- package/dist/data/connectors/regulations-gov-attachments.schemas.js.map +1 -0
- package/dist/data/connectors/regulations-gov-comments.d.ts +2 -0
- package/dist/data/connectors/regulations-gov-comments.js +718 -0
- package/dist/data/connectors/regulations-gov-comments.js.map +1 -0
- package/dist/data/connectors/regulations-gov-comments.schemas.d.ts +717 -0
- package/dist/data/connectors/regulations-gov-comments.schemas.js +389 -0
- package/dist/data/connectors/regulations-gov-comments.schemas.js.map +1 -0
- package/dist/data/connectors/usbr-project-records.d.ts +2 -0
- package/dist/data/connectors/usbr-project-records.js +467 -0
- package/dist/data/connectors/usbr-project-records.js.map +1 -0
- package/dist/data/connectors/usbr-project-records.schemas.d.ts +194 -0
- package/dist/data/connectors/usbr-project-records.schemas.js +137 -0
- package/dist/data/connectors/usbr-project-records.schemas.js.map +1 -0
- package/dist/data/connectors/usbr-rise.d.ts +2 -0
- package/dist/data/connectors/usbr-rise.js +625 -0
- package/dist/data/connectors/usbr-rise.js.map +1 -0
- package/dist/data/connectors/usbr-rise.schemas.d.ts +623 -0
- package/dist/data/connectors/usbr-rise.schemas.js +407 -0
- package/dist/data/connectors/usbr-rise.schemas.js.map +1 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.d.ts +2 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.js +521 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.js.map +1 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.schemas.d.ts +496 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.schemas.js +309 -0
- package/dist/data/connectors/usgs-water-instantaneous-values.schemas.js.map +1 -0
- package/dist/data/connectors/youtube-public-content.d.ts +2 -0
- package/dist/data/connectors/youtube-public-content.js +974 -0
- package/dist/data/connectors/youtube-public-content.js.map +1 -0
- package/dist/data/connectors/youtube-public-content.schemas.d.ts +773 -0
- package/dist/data/connectors/youtube-public-content.schemas.js +567 -0
- package/dist/data/connectors/youtube-public-content.schemas.js.map +1 -0
- package/dist/data/contracts.d.ts +374 -0
- package/dist/data/contracts.js +10 -0
- package/dist/data/contracts.js.map +1 -0
- package/dist/data/runtime/artifacts.d.ts +6 -0
- package/dist/data/runtime/artifacts.js +103 -0
- package/dist/data/runtime/artifacts.js.map +1 -0
- package/dist/data/runtime/bounded-http.d.ts +10 -0
- package/dist/data/runtime/bounded-http.js +403 -0
- package/dist/data/runtime/bounded-http.js.map +1 -0
- package/dist/data/runtime/canonical-json.d.ts +3 -0
- package/dist/data/runtime/canonical-json.js +59 -0
- package/dist/data/runtime/canonical-json.js.map +1 -0
- package/dist/data/runtime/credentials.d.ts +14 -0
- package/dist/data/runtime/credentials.js +67 -0
- package/dist/data/runtime/credentials.js.map +1 -0
- package/dist/data/runtime/csv.d.ts +4 -0
- package/dist/data/runtime/csv.js +51 -0
- package/dist/data/runtime/csv.js.map +1 -0
- package/dist/data/runtime/errors.d.ts +22 -0
- package/dist/data/runtime/errors.js +101 -0
- package/dist/data/runtime/errors.js.map +1 -0
- package/dist/data/runtime/execute.d.ts +11 -0
- package/dist/data/runtime/execute.js +358 -0
- package/dist/data/runtime/execute.js.map +1 -0
- package/dist/data/runtime/receipts.d.ts +13 -0
- package/dist/data/runtime/receipts.js +38 -0
- package/dist/data/runtime/receipts.js.map +1 -0
- package/dist/data/schemas/catalog.v1.json +73 -0
- package/dist/data/schemas/core-receipt.v1.json +117 -0
- package/dist/data/schemas/describe.v1.json +24 -0
- package/dist/data/schemas/discovery.v1.json +130 -0
- package/dist/data/schemas/doctor.v1.json +40 -0
- package/dist/data/schemas/error.v1.json +48 -0
- package/dist/data/schemas/manifest.v1.json +174 -0
- package/dist/data/schemas/run-request.v1.json +37 -0
- package/dist/data/schemas/run-result.v1.json +77 -0
- package/dist/data/schemas.d.ts +27 -0
- package/dist/data/schemas.js +69 -0
- package/dist/data/schemas.js.map +1 -0
- package/dist/env.js.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/http.js.map +1 -1
- package/dist/kb/config.js.map +1 -1
- package/dist/kb/pipeline-health.js.map +1 -1
- package/dist/research/orchestration.js +71 -11
- package/dist/research/orchestration.js.map +1 -1
- package/dist/research/workspace/acquisition.js +70 -5
- package/dist/research/workspace/acquisition.js.map +1 -1
- package/dist/research/workspace/audit-bundle.js +7 -2
- package/dist/research/workspace/audit-bundle.js.map +1 -1
- package/dist/research/workspace/broker.js.map +1 -1
- package/dist/research/workspace/constants.js.map +1 -1
- package/dist/research/workspace/credentials.d.ts +3 -0
- package/dist/research/workspace/credentials.js +20 -3
- package/dist/research/workspace/credentials.js.map +1 -1
- package/dist/research/workspace/data-evidence-adapter.d.ts +60 -0
- package/dist/research/workspace/data-evidence-adapter.js +314 -0
- package/dist/research/workspace/data-evidence-adapter.js.map +1 -0
- package/dist/research/workspace/discovery-status.js +10 -7
- package/dist/research/workspace/discovery-status.js.map +1 -1
- package/dist/research/workspace/discovery.js +12 -11
- package/dist/research/workspace/discovery.js.map +1 -1
- package/dist/research/workspace/evidence-ledger.d.ts +8 -1
- package/dist/research/workspace/evidence-ledger.js +46 -4
- package/dist/research/workspace/evidence-ledger.js.map +1 -1
- package/dist/research/workspace/evidence.d.ts +31 -0
- package/dist/research/workspace/evidence.js +77 -0
- package/dist/research/workspace/evidence.js.map +1 -1
- package/dist/research/workspace/executor.js.map +1 -1
- package/dist/research/workspace/external-skills.d.ts +49 -49
- package/dist/research/workspace/external-skills.js.map +1 -1
- package/dist/research/workspace/platform-capabilities.js.map +1 -1
- package/dist/research/workspace/preflight.d.ts +4 -4
- package/dist/research/workspace/preflight.js +33 -8
- package/dist/research/workspace/preflight.js.map +1 -1
- package/dist/research/workspace/projects.js +203 -76
- package/dist/research/workspace/projects.js.map +1 -1
- package/dist/research/workspace/publication.js.map +1 -1
- package/dist/research/workspace/research-policy-wizard.js.map +1 -1
- package/dist/research/workspace/research-policy.js.map +1 -1
- package/dist/research/workspace/runtime.d.ts +7 -0
- package/dist/research/workspace/runtime.js +82 -23
- package/dist/research/workspace/runtime.js.map +1 -1
- package/dist/research/workspace/sanitization.js.map +1 -1
- package/dist/research/workspace/schemas.js +1 -1
- package/dist/research/workspace/schemas.js.map +1 -1
- package/dist/research/workspace/scientific-design.js.map +1 -1
- package/dist/research/workspace/scientific-review.js.map +1 -1
- package/dist/research/workspace/setup-catalog.d.ts +9 -9
- package/dist/research/workspace/setup-catalog.js +2 -2
- package/dist/research/workspace/setup-catalog.js.map +1 -1
- package/dist/research/workspace/setup-declarative.js.map +1 -1
- package/dist/research/workspace/setup-instructions.d.ts +42 -0
- package/dist/research/workspace/setup-instructions.js +413 -0
- package/dist/research/workspace/setup-instructions.js.map +1 -0
- package/dist/research/workspace/setup-invocation.js.map +1 -1
- package/dist/research/workspace/setup-wizard.js +7 -0
- package/dist/research/workspace/setup-wizard.js.map +1 -1
- package/dist/research/workspace/setup.d.ts +18 -15
- package/dist/research/workspace/setup.js +68 -3
- package/dist/research/workspace/setup.js.map +1 -1
- package/dist/research/workspace/workspace.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,773 @@
|
|
|
1
|
+
export declare const YOUTUBE_VIDEO_SEARCH_INPUT_SCHEMA: {
|
|
2
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3
|
+
readonly $id: "https://schemas.tiangong.ai/data/youtube/video-search-input.v1.json";
|
|
4
|
+
readonly type: "object";
|
|
5
|
+
readonly additionalProperties: false;
|
|
6
|
+
readonly required: readonly ["query"];
|
|
7
|
+
readonly properties: {
|
|
8
|
+
readonly query: {
|
|
9
|
+
readonly type: "string";
|
|
10
|
+
readonly minLength: 1;
|
|
11
|
+
readonly maxLength: 500;
|
|
12
|
+
readonly description: "Search expression passed to YouTube Data API search.list as q.";
|
|
13
|
+
readonly examples: readonly ["climate policy"];
|
|
14
|
+
};
|
|
15
|
+
readonly channelId: {
|
|
16
|
+
readonly type: "string";
|
|
17
|
+
readonly minLength: 1;
|
|
18
|
+
readonly maxLength: 128;
|
|
19
|
+
readonly description: "Optional YouTube channel ID that matching videos must belong to.";
|
|
20
|
+
readonly examples: readonly ["UC_x5XG1OV2P6uZZ5FSM9Ttw"];
|
|
21
|
+
};
|
|
22
|
+
readonly publishedAfter: {
|
|
23
|
+
readonly type: "string";
|
|
24
|
+
readonly pattern: "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?Z$";
|
|
25
|
+
readonly description: "Optional inclusive RFC 3339 UTC lower bound for video publication time.";
|
|
26
|
+
readonly examples: readonly ["2026-03-01T00:00:00Z"];
|
|
27
|
+
};
|
|
28
|
+
readonly publishedBefore: {
|
|
29
|
+
readonly type: "string";
|
|
30
|
+
readonly pattern: "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?Z$";
|
|
31
|
+
readonly description: "Optional inclusive RFC 3339 UTC upper bound for video publication time under the current search.list contract.";
|
|
32
|
+
readonly examples: readonly ["2026-03-08T00:00:00Z"];
|
|
33
|
+
};
|
|
34
|
+
readonly order: {
|
|
35
|
+
readonly enum: readonly ["date", "rating", "relevance", "title", "viewCount"];
|
|
36
|
+
readonly description: "Provider ordering for video search results; relevance is the default. videoCount is excluded because the provider defines it for channel ordering.";
|
|
37
|
+
readonly examples: readonly ["date"];
|
|
38
|
+
};
|
|
39
|
+
readonly regionCode: {
|
|
40
|
+
readonly type: "string";
|
|
41
|
+
readonly pattern: "^[A-Z]{2}$";
|
|
42
|
+
readonly description: "Optional ISO 3166-1 alpha-2 region used for search availability and ranking.";
|
|
43
|
+
readonly examples: readonly ["US"];
|
|
44
|
+
};
|
|
45
|
+
readonly relevanceLanguage: {
|
|
46
|
+
readonly type: "string";
|
|
47
|
+
readonly minLength: 2;
|
|
48
|
+
readonly maxLength: 35;
|
|
49
|
+
readonly description: "Optional language hint for results most relevant to the supplied query.";
|
|
50
|
+
readonly examples: readonly ["en"];
|
|
51
|
+
};
|
|
52
|
+
readonly safeSearch: {
|
|
53
|
+
readonly enum: readonly ["moderate", "none", "strict"];
|
|
54
|
+
readonly description: "YouTube safeSearch filtering mode; moderate is the default.";
|
|
55
|
+
readonly examples: readonly ["moderate"];
|
|
56
|
+
};
|
|
57
|
+
readonly videoCaption: {
|
|
58
|
+
readonly enum: readonly ["any", "closedCaption", "none"];
|
|
59
|
+
readonly description: "Optional search.list caption-availability filter.";
|
|
60
|
+
readonly examples: readonly ["closedCaption"];
|
|
61
|
+
};
|
|
62
|
+
readonly videoDefinition: {
|
|
63
|
+
readonly enum: readonly ["any", "high", "standard"];
|
|
64
|
+
readonly description: "Optional video definition filter.";
|
|
65
|
+
readonly examples: readonly ["high"];
|
|
66
|
+
};
|
|
67
|
+
readonly videoDimension: {
|
|
68
|
+
readonly enum: readonly ["2d", "3d", "any"];
|
|
69
|
+
readonly description: "Optional 2D/3D video-dimension filter.";
|
|
70
|
+
readonly examples: readonly ["2d"];
|
|
71
|
+
};
|
|
72
|
+
readonly videoDuration: {
|
|
73
|
+
readonly enum: readonly ["any", "long", "medium", "short"];
|
|
74
|
+
readonly description: "Optional provider duration bucket filter.";
|
|
75
|
+
readonly examples: readonly ["medium"];
|
|
76
|
+
};
|
|
77
|
+
readonly videoEmbeddable: {
|
|
78
|
+
readonly enum: readonly ["any", "true"];
|
|
79
|
+
readonly description: "Optional filter for videos embeddable outside youtube.com.";
|
|
80
|
+
readonly examples: readonly ["true"];
|
|
81
|
+
};
|
|
82
|
+
readonly videoEventType: {
|
|
83
|
+
readonly enum: readonly ["completed", "live", "upcoming"];
|
|
84
|
+
readonly description: "Optional broadcast-event state filter.";
|
|
85
|
+
readonly examples: readonly ["completed"];
|
|
86
|
+
};
|
|
87
|
+
readonly videoLicense: {
|
|
88
|
+
readonly enum: readonly ["any", "creativeCommon", "youtube"];
|
|
89
|
+
readonly description: "Optional provider license-category filter.";
|
|
90
|
+
readonly examples: readonly ["creativeCommon"];
|
|
91
|
+
};
|
|
92
|
+
readonly videoPaidProductPlacement: {
|
|
93
|
+
readonly enum: readonly ["any", "true"];
|
|
94
|
+
readonly description: "Optional filter for videos marked as containing paid promotion.";
|
|
95
|
+
readonly examples: readonly ["true"];
|
|
96
|
+
};
|
|
97
|
+
readonly videoSyndicated: {
|
|
98
|
+
readonly enum: readonly ["any", "true"];
|
|
99
|
+
readonly description: "Optional filter for videos playable outside youtube.com.";
|
|
100
|
+
readonly examples: readonly ["true"];
|
|
101
|
+
};
|
|
102
|
+
readonly videoType: {
|
|
103
|
+
readonly enum: readonly ["any", "episode", "movie"];
|
|
104
|
+
readonly description: "Optional YouTube video-type filter.";
|
|
105
|
+
readonly examples: readonly ["episode"];
|
|
106
|
+
};
|
|
107
|
+
readonly pageSize: {
|
|
108
|
+
readonly type: "integer";
|
|
109
|
+
readonly minimum: 1;
|
|
110
|
+
readonly maximum: 50;
|
|
111
|
+
readonly description: "Maximum video search results requested per search.list page.";
|
|
112
|
+
readonly examples: readonly [25];
|
|
113
|
+
};
|
|
114
|
+
readonly maxSearchPages: {
|
|
115
|
+
readonly type: "integer";
|
|
116
|
+
readonly minimum: 1;
|
|
117
|
+
readonly maximum: 10;
|
|
118
|
+
readonly description: "Maximum search.list pages before mandatory detail enrichment. Defaults to 5 and cannot exceed the reviewed source cap of 10.";
|
|
119
|
+
readonly examples: readonly [5];
|
|
120
|
+
};
|
|
121
|
+
readonly requirePublicComments: {
|
|
122
|
+
readonly type: "boolean";
|
|
123
|
+
readonly description: "Whether to exclude videos whose public statistics omit commentCount or report zero comments.";
|
|
124
|
+
readonly examples: readonly [true];
|
|
125
|
+
};
|
|
126
|
+
readonly minimumCommentCount: {
|
|
127
|
+
readonly type: "integer";
|
|
128
|
+
readonly minimum: 0;
|
|
129
|
+
readonly maximum: 9007199254740991;
|
|
130
|
+
readonly description: "Client-side minimum public commentCount after videos.list enrichment.";
|
|
131
|
+
readonly examples: readonly [20];
|
|
132
|
+
};
|
|
133
|
+
readonly minimumViewCount: {
|
|
134
|
+
readonly type: "integer";
|
|
135
|
+
readonly minimum: 0;
|
|
136
|
+
readonly maximum: 9007199254740991;
|
|
137
|
+
readonly description: "Client-side minimum public viewCount after videos.list enrichment.";
|
|
138
|
+
readonly examples: readonly [1000];
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
export declare const YOUTUBE_COMMENTS_INPUT_SCHEMA: {
|
|
143
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
144
|
+
readonly $id: "https://schemas.tiangong.ai/data/youtube/comments-input.v1.json";
|
|
145
|
+
readonly type: "object";
|
|
146
|
+
readonly additionalProperties: false;
|
|
147
|
+
readonly required: readonly ["videoIds"];
|
|
148
|
+
readonly dependentRequired: {
|
|
149
|
+
readonly startDateTime: readonly ["endDateTime"];
|
|
150
|
+
readonly endDateTime: readonly ["startDateTime"];
|
|
151
|
+
};
|
|
152
|
+
readonly properties: {
|
|
153
|
+
readonly videoIds: {
|
|
154
|
+
readonly type: "array";
|
|
155
|
+
readonly minItems: 1;
|
|
156
|
+
readonly maxItems: 50;
|
|
157
|
+
readonly uniqueItems: true;
|
|
158
|
+
readonly description: "One to 50 explicit YouTube video IDs whose public comment threads should be read.";
|
|
159
|
+
readonly examples: readonly [readonly ["dQw4w9WgXcQ"]];
|
|
160
|
+
readonly items: {
|
|
161
|
+
readonly type: "string";
|
|
162
|
+
readonly minLength: 11;
|
|
163
|
+
readonly maxLength: 11;
|
|
164
|
+
readonly pattern: "^[A-Za-z0-9_-]{11}$";
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
readonly startDateTime: {
|
|
168
|
+
readonly type: "string";
|
|
169
|
+
readonly pattern: "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?Z$";
|
|
170
|
+
readonly description: "Optional inclusive UTC lower bound applied client-side to publishedAt or updatedAt; must be paired with endDateTime.";
|
|
171
|
+
readonly examples: readonly ["2026-03-01T00:00:00Z"];
|
|
172
|
+
};
|
|
173
|
+
readonly endDateTime: {
|
|
174
|
+
readonly type: "string";
|
|
175
|
+
readonly pattern: "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?Z$";
|
|
176
|
+
readonly description: "Optional exclusive UTC upper bound applied client-side to publishedAt or updatedAt; must be paired with startDateTime.";
|
|
177
|
+
readonly examples: readonly ["2026-03-08T00:00:00Z"];
|
|
178
|
+
};
|
|
179
|
+
readonly timeField: {
|
|
180
|
+
readonly enum: readonly ["published", "updated"];
|
|
181
|
+
readonly description: "Comment timestamp field used for the optional UTC window; published is default.";
|
|
182
|
+
readonly examples: readonly ["published"];
|
|
183
|
+
};
|
|
184
|
+
readonly includeReplies: {
|
|
185
|
+
readonly type: "boolean";
|
|
186
|
+
readonly description: "Whether to use comments.list pagination for complete visible replies instead of trusting the partial embedded reply sample.";
|
|
187
|
+
readonly examples: readonly [true];
|
|
188
|
+
};
|
|
189
|
+
readonly searchTerms: {
|
|
190
|
+
readonly type: "string";
|
|
191
|
+
readonly minLength: 1;
|
|
192
|
+
readonly maxLength: 500;
|
|
193
|
+
readonly description: "Optional provider searchTerms filter for top-level comment threads.";
|
|
194
|
+
readonly examples: readonly ["air pollution"];
|
|
195
|
+
};
|
|
196
|
+
readonly order: {
|
|
197
|
+
readonly enum: readonly ["relevance", "time"];
|
|
198
|
+
readonly description: "Provider ordering for top-level comment threads; time is default.";
|
|
199
|
+
readonly examples: readonly ["time"];
|
|
200
|
+
};
|
|
201
|
+
readonly pageSize: {
|
|
202
|
+
readonly type: "integer";
|
|
203
|
+
readonly minimum: 1;
|
|
204
|
+
readonly maximum: 100;
|
|
205
|
+
readonly description: "Maximum top-level threads or replies requested per provider page.";
|
|
206
|
+
readonly examples: readonly [100];
|
|
207
|
+
};
|
|
208
|
+
readonly maxThreadPagesPerVideo: {
|
|
209
|
+
readonly type: "integer";
|
|
210
|
+
readonly minimum: 1;
|
|
211
|
+
readonly maximum: 50;
|
|
212
|
+
readonly description: "Per-video top-level commentThreads.list page cap within the operation-wide request limit.";
|
|
213
|
+
readonly examples: readonly [10];
|
|
214
|
+
};
|
|
215
|
+
readonly maxReplyPagesPerThread: {
|
|
216
|
+
readonly type: "integer";
|
|
217
|
+
readonly minimum: 1;
|
|
218
|
+
readonly maximum: 50;
|
|
219
|
+
readonly description: "Per-thread comments.list reply-page cap within the operation-wide request limit.";
|
|
220
|
+
readonly examples: readonly [20];
|
|
221
|
+
};
|
|
222
|
+
};
|
|
223
|
+
};
|
|
224
|
+
export declare const YOUTUBE_VIDEO_SEARCH_OUTPUT_SCHEMA: {
|
|
225
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
226
|
+
readonly $id: "https://schemas.tiangong.ai/data/youtube/video-search-output.v1.json";
|
|
227
|
+
readonly type: "object";
|
|
228
|
+
readonly additionalProperties: false;
|
|
229
|
+
readonly required: readonly ["source", "query", "searchPages", "records", "filteredOut", "failures", "stopReason"];
|
|
230
|
+
readonly properties: {
|
|
231
|
+
readonly source: {
|
|
232
|
+
readonly type: "object";
|
|
233
|
+
readonly additionalProperties: false;
|
|
234
|
+
readonly required: readonly ["providerId", "apiVersion", "metadataOnly", "userGeneratedContent"];
|
|
235
|
+
readonly properties: {
|
|
236
|
+
readonly providerId: {
|
|
237
|
+
readonly const: "youtube";
|
|
238
|
+
};
|
|
239
|
+
readonly apiVersion: {
|
|
240
|
+
readonly const: "v3";
|
|
241
|
+
};
|
|
242
|
+
readonly metadataOnly: {
|
|
243
|
+
readonly const: true;
|
|
244
|
+
};
|
|
245
|
+
readonly userGeneratedContent: {
|
|
246
|
+
readonly const: true;
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
};
|
|
250
|
+
readonly query: {
|
|
251
|
+
readonly type: "object";
|
|
252
|
+
readonly additionalProperties: false;
|
|
253
|
+
readonly required: readonly ["query", "channelId", "publishedAfter", "publishedBefore", "order", "regionCode", "relevanceLanguage", "safeSearch", "videoCaption", "videoDefinition", "videoDimension", "videoDuration", "videoEmbeddable", "videoEventType", "videoLicense", "videoPaidProductPlacement", "videoSyndicated", "videoType", "pageSize", "maxSearchPages", "requirePublicComments", "minimumCommentCount", "minimumViewCount"];
|
|
254
|
+
readonly properties: {
|
|
255
|
+
readonly query: {
|
|
256
|
+
readonly type: "string";
|
|
257
|
+
readonly minLength: 1;
|
|
258
|
+
};
|
|
259
|
+
readonly channelId: {
|
|
260
|
+
readonly type: readonly ["string", "null"];
|
|
261
|
+
};
|
|
262
|
+
readonly publishedAfter: {
|
|
263
|
+
readonly type: readonly ["string", "null"];
|
|
264
|
+
};
|
|
265
|
+
readonly publishedBefore: {
|
|
266
|
+
readonly type: readonly ["string", "null"];
|
|
267
|
+
};
|
|
268
|
+
readonly order: {
|
|
269
|
+
readonly enum: readonly ["date", "rating", "relevance", "title", "viewCount"];
|
|
270
|
+
};
|
|
271
|
+
readonly regionCode: {
|
|
272
|
+
readonly type: readonly ["string", "null"];
|
|
273
|
+
};
|
|
274
|
+
readonly relevanceLanguage: {
|
|
275
|
+
readonly type: readonly ["string", "null"];
|
|
276
|
+
};
|
|
277
|
+
readonly safeSearch: {
|
|
278
|
+
readonly enum: readonly ["moderate", "none", "strict"];
|
|
279
|
+
};
|
|
280
|
+
readonly videoCaption: {
|
|
281
|
+
readonly type: readonly ["string", "null"];
|
|
282
|
+
};
|
|
283
|
+
readonly videoDefinition: {
|
|
284
|
+
readonly type: readonly ["string", "null"];
|
|
285
|
+
};
|
|
286
|
+
readonly videoDimension: {
|
|
287
|
+
readonly type: readonly ["string", "null"];
|
|
288
|
+
};
|
|
289
|
+
readonly videoDuration: {
|
|
290
|
+
readonly type: readonly ["string", "null"];
|
|
291
|
+
};
|
|
292
|
+
readonly videoEmbeddable: {
|
|
293
|
+
readonly type: readonly ["string", "null"];
|
|
294
|
+
};
|
|
295
|
+
readonly videoEventType: {
|
|
296
|
+
readonly type: readonly ["string", "null"];
|
|
297
|
+
};
|
|
298
|
+
readonly videoLicense: {
|
|
299
|
+
readonly type: readonly ["string", "null"];
|
|
300
|
+
};
|
|
301
|
+
readonly videoPaidProductPlacement: {
|
|
302
|
+
readonly type: readonly ["string", "null"];
|
|
303
|
+
};
|
|
304
|
+
readonly videoSyndicated: {
|
|
305
|
+
readonly type: readonly ["string", "null"];
|
|
306
|
+
};
|
|
307
|
+
readonly videoType: {
|
|
308
|
+
readonly type: readonly ["string", "null"];
|
|
309
|
+
};
|
|
310
|
+
readonly pageSize: {
|
|
311
|
+
readonly type: "integer";
|
|
312
|
+
readonly minimum: 1;
|
|
313
|
+
readonly maximum: 50;
|
|
314
|
+
};
|
|
315
|
+
readonly maxSearchPages: {
|
|
316
|
+
readonly type: "integer";
|
|
317
|
+
readonly minimum: 1;
|
|
318
|
+
readonly maximum: 10;
|
|
319
|
+
};
|
|
320
|
+
readonly requirePublicComments: {
|
|
321
|
+
readonly type: "boolean";
|
|
322
|
+
};
|
|
323
|
+
readonly minimumCommentCount: {
|
|
324
|
+
readonly type: "integer";
|
|
325
|
+
readonly minimum: 0;
|
|
326
|
+
};
|
|
327
|
+
readonly minimumViewCount: {
|
|
328
|
+
readonly type: "integer";
|
|
329
|
+
readonly minimum: 0;
|
|
330
|
+
};
|
|
331
|
+
};
|
|
332
|
+
};
|
|
333
|
+
readonly searchPages: {
|
|
334
|
+
readonly type: "array";
|
|
335
|
+
readonly items: {
|
|
336
|
+
readonly type: "object";
|
|
337
|
+
readonly additionalProperties: false;
|
|
338
|
+
readonly required: readonly ["pageNumber", "inputRecords", "newVideoIds"];
|
|
339
|
+
readonly properties: {
|
|
340
|
+
readonly pageNumber: {
|
|
341
|
+
readonly type: "integer";
|
|
342
|
+
readonly minimum: 1;
|
|
343
|
+
};
|
|
344
|
+
readonly inputRecords: {
|
|
345
|
+
readonly type: "integer";
|
|
346
|
+
readonly minimum: 0;
|
|
347
|
+
};
|
|
348
|
+
readonly newVideoIds: {
|
|
349
|
+
readonly type: "integer";
|
|
350
|
+
readonly minimum: 0;
|
|
351
|
+
};
|
|
352
|
+
};
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
readonly records: {
|
|
356
|
+
readonly type: "array";
|
|
357
|
+
readonly items: {
|
|
358
|
+
readonly type: "object";
|
|
359
|
+
readonly additionalProperties: false;
|
|
360
|
+
readonly required: readonly ["videoId", "searchRank", "searchPage", "searchPosition", "publishedAt", "channelId", "channelTitle", "title", "description", "tags", "thumbnailUrls", "categoryId", "defaultLanguage", "defaultAudioLanguage", "liveBroadcastContent", "statistics", "contentDetails", "status", "liveStreamingDetails"];
|
|
361
|
+
readonly properties: {
|
|
362
|
+
readonly videoId: {
|
|
363
|
+
readonly type: "string";
|
|
364
|
+
readonly minLength: 11;
|
|
365
|
+
readonly maxLength: 11;
|
|
366
|
+
readonly pattern: "^[A-Za-z0-9_-]{11}$";
|
|
367
|
+
};
|
|
368
|
+
readonly searchRank: {
|
|
369
|
+
readonly type: "integer";
|
|
370
|
+
readonly minimum: 1;
|
|
371
|
+
};
|
|
372
|
+
readonly searchPage: {
|
|
373
|
+
readonly type: "integer";
|
|
374
|
+
readonly minimum: 1;
|
|
375
|
+
};
|
|
376
|
+
readonly searchPosition: {
|
|
377
|
+
readonly type: "integer";
|
|
378
|
+
readonly minimum: 1;
|
|
379
|
+
};
|
|
380
|
+
readonly publishedAt: {
|
|
381
|
+
readonly type: readonly ["string", "null"];
|
|
382
|
+
};
|
|
383
|
+
readonly channelId: {
|
|
384
|
+
readonly type: readonly ["string", "null"];
|
|
385
|
+
};
|
|
386
|
+
readonly channelTitle: {
|
|
387
|
+
readonly type: readonly ["string", "null"];
|
|
388
|
+
};
|
|
389
|
+
readonly title: {
|
|
390
|
+
readonly type: "string";
|
|
391
|
+
};
|
|
392
|
+
readonly description: {
|
|
393
|
+
readonly type: "string";
|
|
394
|
+
};
|
|
395
|
+
readonly tags: {
|
|
396
|
+
readonly type: "array";
|
|
397
|
+
readonly items: {
|
|
398
|
+
readonly type: "string";
|
|
399
|
+
};
|
|
400
|
+
};
|
|
401
|
+
readonly thumbnailUrls: {
|
|
402
|
+
readonly type: "array";
|
|
403
|
+
readonly uniqueItems: true;
|
|
404
|
+
readonly items: {
|
|
405
|
+
readonly type: "string";
|
|
406
|
+
readonly pattern: "^https://";
|
|
407
|
+
};
|
|
408
|
+
};
|
|
409
|
+
readonly categoryId: {
|
|
410
|
+
readonly type: readonly ["string", "null"];
|
|
411
|
+
};
|
|
412
|
+
readonly defaultLanguage: {
|
|
413
|
+
readonly type: readonly ["string", "null"];
|
|
414
|
+
};
|
|
415
|
+
readonly defaultAudioLanguage: {
|
|
416
|
+
readonly type: readonly ["string", "null"];
|
|
417
|
+
};
|
|
418
|
+
readonly liveBroadcastContent: {
|
|
419
|
+
readonly type: readonly ["string", "null"];
|
|
420
|
+
};
|
|
421
|
+
readonly statistics: {
|
|
422
|
+
readonly type: "object";
|
|
423
|
+
readonly additionalProperties: false;
|
|
424
|
+
readonly required: readonly ["viewCount", "likeCount", "commentCount"];
|
|
425
|
+
readonly properties: {
|
|
426
|
+
readonly viewCount: {
|
|
427
|
+
readonly type: readonly ["integer", "null"];
|
|
428
|
+
readonly minimum: 0;
|
|
429
|
+
};
|
|
430
|
+
readonly likeCount: {
|
|
431
|
+
readonly type: readonly ["integer", "null"];
|
|
432
|
+
readonly minimum: 0;
|
|
433
|
+
};
|
|
434
|
+
readonly commentCount: {
|
|
435
|
+
readonly type: readonly ["integer", "null"];
|
|
436
|
+
readonly minimum: 0;
|
|
437
|
+
};
|
|
438
|
+
};
|
|
439
|
+
};
|
|
440
|
+
readonly contentDetails: {
|
|
441
|
+
readonly type: "object";
|
|
442
|
+
readonly additionalProperties: false;
|
|
443
|
+
readonly required: readonly ["duration", "caption", "definition", "dimension", "licensedContent", "projection"];
|
|
444
|
+
readonly properties: {
|
|
445
|
+
readonly duration: {
|
|
446
|
+
readonly type: readonly ["string", "null"];
|
|
447
|
+
};
|
|
448
|
+
readonly caption: {
|
|
449
|
+
readonly type: readonly ["string", "null"];
|
|
450
|
+
};
|
|
451
|
+
readonly definition: {
|
|
452
|
+
readonly type: readonly ["string", "null"];
|
|
453
|
+
};
|
|
454
|
+
readonly dimension: {
|
|
455
|
+
readonly type: readonly ["string", "null"];
|
|
456
|
+
};
|
|
457
|
+
readonly licensedContent: {
|
|
458
|
+
readonly type: readonly ["boolean", "null"];
|
|
459
|
+
};
|
|
460
|
+
readonly projection: {
|
|
461
|
+
readonly type: readonly ["string", "null"];
|
|
462
|
+
};
|
|
463
|
+
};
|
|
464
|
+
};
|
|
465
|
+
readonly status: {
|
|
466
|
+
readonly type: "object";
|
|
467
|
+
readonly additionalProperties: false;
|
|
468
|
+
readonly required: readonly ["privacyStatus", "embeddable", "license", "madeForKids", "selfDeclaredMadeForKids"];
|
|
469
|
+
readonly properties: {
|
|
470
|
+
readonly privacyStatus: {
|
|
471
|
+
readonly type: readonly ["string", "null"];
|
|
472
|
+
};
|
|
473
|
+
readonly embeddable: {
|
|
474
|
+
readonly type: readonly ["boolean", "null"];
|
|
475
|
+
};
|
|
476
|
+
readonly license: {
|
|
477
|
+
readonly type: readonly ["string", "null"];
|
|
478
|
+
};
|
|
479
|
+
readonly madeForKids: {
|
|
480
|
+
readonly type: readonly ["boolean", "null"];
|
|
481
|
+
};
|
|
482
|
+
readonly selfDeclaredMadeForKids: {
|
|
483
|
+
readonly type: readonly ["boolean", "null"];
|
|
484
|
+
};
|
|
485
|
+
};
|
|
486
|
+
};
|
|
487
|
+
readonly liveStreamingDetails: {
|
|
488
|
+
readonly type: "object";
|
|
489
|
+
readonly additionalProperties: false;
|
|
490
|
+
readonly required: readonly ["actualStartTime", "actualEndTime", "scheduledStartTime", "scheduledEndTime"];
|
|
491
|
+
readonly properties: {
|
|
492
|
+
readonly actualStartTime: {
|
|
493
|
+
readonly type: readonly ["string", "null"];
|
|
494
|
+
};
|
|
495
|
+
readonly actualEndTime: {
|
|
496
|
+
readonly type: readonly ["string", "null"];
|
|
497
|
+
};
|
|
498
|
+
readonly scheduledStartTime: {
|
|
499
|
+
readonly type: readonly ["string", "null"];
|
|
500
|
+
};
|
|
501
|
+
readonly scheduledEndTime: {
|
|
502
|
+
readonly type: readonly ["string", "null"];
|
|
503
|
+
};
|
|
504
|
+
};
|
|
505
|
+
};
|
|
506
|
+
};
|
|
507
|
+
};
|
|
508
|
+
};
|
|
509
|
+
readonly filteredOut: {
|
|
510
|
+
readonly type: "array";
|
|
511
|
+
readonly items: {
|
|
512
|
+
readonly type: "object";
|
|
513
|
+
readonly additionalProperties: false;
|
|
514
|
+
readonly required: readonly ["videoId", "reason"];
|
|
515
|
+
readonly properties: {
|
|
516
|
+
readonly videoId: {
|
|
517
|
+
readonly type: "string";
|
|
518
|
+
readonly minLength: 11;
|
|
519
|
+
readonly maxLength: 11;
|
|
520
|
+
readonly pattern: "^[A-Za-z0-9_-]{11}$";
|
|
521
|
+
};
|
|
522
|
+
readonly reason: {
|
|
523
|
+
readonly type: "string";
|
|
524
|
+
};
|
|
525
|
+
};
|
|
526
|
+
};
|
|
527
|
+
};
|
|
528
|
+
readonly failures: {
|
|
529
|
+
readonly type: "array";
|
|
530
|
+
readonly items: {
|
|
531
|
+
readonly type: "object";
|
|
532
|
+
readonly additionalProperties: false;
|
|
533
|
+
readonly required: readonly ["videoIds", "code"];
|
|
534
|
+
readonly properties: {
|
|
535
|
+
readonly videoIds: {
|
|
536
|
+
readonly type: "array";
|
|
537
|
+
readonly items: {
|
|
538
|
+
readonly type: "string";
|
|
539
|
+
readonly minLength: 11;
|
|
540
|
+
readonly maxLength: 11;
|
|
541
|
+
readonly pattern: "^[A-Za-z0-9_-]{11}$";
|
|
542
|
+
};
|
|
543
|
+
};
|
|
544
|
+
readonly code: {
|
|
545
|
+
readonly type: "string";
|
|
546
|
+
readonly minLength: 1;
|
|
547
|
+
};
|
|
548
|
+
};
|
|
549
|
+
};
|
|
550
|
+
};
|
|
551
|
+
readonly stopReason: {
|
|
552
|
+
readonly enum: readonly ["completed", "no-results", "max-pages", "max-records", "partial"];
|
|
553
|
+
};
|
|
554
|
+
};
|
|
555
|
+
};
|
|
556
|
+
export declare const YOUTUBE_COMMENTS_OUTPUT_SCHEMA: {
|
|
557
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
558
|
+
readonly $id: "https://schemas.tiangong.ai/data/youtube/comments-output.v1.json";
|
|
559
|
+
readonly type: "object";
|
|
560
|
+
readonly additionalProperties: false;
|
|
561
|
+
readonly required: readonly ["source", "query", "videos", "records", "failures", "replyCompleteness", "stopReason"];
|
|
562
|
+
readonly properties: {
|
|
563
|
+
readonly source: {
|
|
564
|
+
readonly type: "object";
|
|
565
|
+
readonly additionalProperties: false;
|
|
566
|
+
readonly required: readonly ["providerId", "apiVersion", "publicComments", "userGeneratedContent"];
|
|
567
|
+
readonly properties: {
|
|
568
|
+
readonly providerId: {
|
|
569
|
+
readonly const: "youtube";
|
|
570
|
+
};
|
|
571
|
+
readonly apiVersion: {
|
|
572
|
+
readonly const: "v3";
|
|
573
|
+
};
|
|
574
|
+
readonly publicComments: {
|
|
575
|
+
readonly const: true;
|
|
576
|
+
};
|
|
577
|
+
readonly userGeneratedContent: {
|
|
578
|
+
readonly const: true;
|
|
579
|
+
};
|
|
580
|
+
};
|
|
581
|
+
};
|
|
582
|
+
readonly query: {
|
|
583
|
+
readonly type: "object";
|
|
584
|
+
readonly additionalProperties: false;
|
|
585
|
+
readonly required: readonly ["videoIds", "startDateTime", "endDateTime", "timeField", "includeReplies", "searchTerms", "order", "pageSize", "maxThreadPagesPerVideo", "maxReplyPagesPerThread"];
|
|
586
|
+
readonly properties: {
|
|
587
|
+
readonly videoIds: {
|
|
588
|
+
readonly type: "array";
|
|
589
|
+
readonly items: {
|
|
590
|
+
readonly type: "string";
|
|
591
|
+
readonly minLength: 11;
|
|
592
|
+
readonly maxLength: 11;
|
|
593
|
+
readonly pattern: "^[A-Za-z0-9_-]{11}$";
|
|
594
|
+
};
|
|
595
|
+
};
|
|
596
|
+
readonly startDateTime: {
|
|
597
|
+
readonly type: readonly ["string", "null"];
|
|
598
|
+
};
|
|
599
|
+
readonly endDateTime: {
|
|
600
|
+
readonly type: readonly ["string", "null"];
|
|
601
|
+
};
|
|
602
|
+
readonly timeField: {
|
|
603
|
+
readonly enum: readonly ["published", "updated"];
|
|
604
|
+
};
|
|
605
|
+
readonly includeReplies: {
|
|
606
|
+
readonly type: "boolean";
|
|
607
|
+
};
|
|
608
|
+
readonly searchTerms: {
|
|
609
|
+
readonly type: readonly ["string", "null"];
|
|
610
|
+
};
|
|
611
|
+
readonly order: {
|
|
612
|
+
readonly enum: readonly ["relevance", "time"];
|
|
613
|
+
};
|
|
614
|
+
readonly pageSize: {
|
|
615
|
+
readonly type: "integer";
|
|
616
|
+
readonly minimum: 1;
|
|
617
|
+
readonly maximum: 100;
|
|
618
|
+
};
|
|
619
|
+
readonly maxThreadPagesPerVideo: {
|
|
620
|
+
readonly type: "integer";
|
|
621
|
+
readonly minimum: 1;
|
|
622
|
+
readonly maximum: 50;
|
|
623
|
+
};
|
|
624
|
+
readonly maxReplyPagesPerThread: {
|
|
625
|
+
readonly type: "integer";
|
|
626
|
+
readonly minimum: 1;
|
|
627
|
+
readonly maximum: 50;
|
|
628
|
+
};
|
|
629
|
+
};
|
|
630
|
+
};
|
|
631
|
+
readonly videos: {
|
|
632
|
+
readonly type: "array";
|
|
633
|
+
readonly items: {
|
|
634
|
+
readonly type: "object";
|
|
635
|
+
readonly additionalProperties: false;
|
|
636
|
+
readonly required: readonly ["videoId", "threadPages", "replyPages", "threads", "comments", "truncated"];
|
|
637
|
+
readonly properties: {
|
|
638
|
+
readonly videoId: {
|
|
639
|
+
readonly type: "string";
|
|
640
|
+
readonly minLength: 11;
|
|
641
|
+
readonly maxLength: 11;
|
|
642
|
+
readonly pattern: "^[A-Za-z0-9_-]{11}$";
|
|
643
|
+
};
|
|
644
|
+
readonly threadPages: {
|
|
645
|
+
readonly type: "integer";
|
|
646
|
+
readonly minimum: 0;
|
|
647
|
+
};
|
|
648
|
+
readonly replyPages: {
|
|
649
|
+
readonly type: "integer";
|
|
650
|
+
readonly minimum: 0;
|
|
651
|
+
};
|
|
652
|
+
readonly threads: {
|
|
653
|
+
readonly type: "integer";
|
|
654
|
+
readonly minimum: 0;
|
|
655
|
+
};
|
|
656
|
+
readonly comments: {
|
|
657
|
+
readonly type: "integer";
|
|
658
|
+
readonly minimum: 0;
|
|
659
|
+
};
|
|
660
|
+
readonly truncated: {
|
|
661
|
+
readonly type: "boolean";
|
|
662
|
+
};
|
|
663
|
+
};
|
|
664
|
+
};
|
|
665
|
+
};
|
|
666
|
+
readonly records: {
|
|
667
|
+
readonly type: "array";
|
|
668
|
+
readonly items: {
|
|
669
|
+
readonly type: "object";
|
|
670
|
+
readonly additionalProperties: false;
|
|
671
|
+
readonly required: readonly ["commentId", "threadId", "videoId", "parentId", "kind", "channelId", "authorDisplayName", "authorChannelId", "authorChannelUrl", "authorProfileImageUrl", "textDisplay", "textOriginal", "publishedAt", "updatedAt", "likeCount", "viewerRating", "canRate"];
|
|
672
|
+
readonly properties: {
|
|
673
|
+
readonly commentId: {
|
|
674
|
+
readonly type: "string";
|
|
675
|
+
readonly minLength: 1;
|
|
676
|
+
};
|
|
677
|
+
readonly threadId: {
|
|
678
|
+
readonly type: "string";
|
|
679
|
+
readonly minLength: 1;
|
|
680
|
+
};
|
|
681
|
+
readonly videoId: {
|
|
682
|
+
readonly type: "string";
|
|
683
|
+
readonly minLength: 11;
|
|
684
|
+
readonly maxLength: 11;
|
|
685
|
+
readonly pattern: "^[A-Za-z0-9_-]{11}$";
|
|
686
|
+
};
|
|
687
|
+
readonly parentId: {
|
|
688
|
+
readonly type: readonly ["string", "null"];
|
|
689
|
+
};
|
|
690
|
+
readonly kind: {
|
|
691
|
+
readonly enum: readonly ["top-level", "reply"];
|
|
692
|
+
};
|
|
693
|
+
readonly channelId: {
|
|
694
|
+
readonly type: readonly ["string", "null"];
|
|
695
|
+
};
|
|
696
|
+
readonly authorDisplayName: {
|
|
697
|
+
readonly type: readonly ["string", "null"];
|
|
698
|
+
};
|
|
699
|
+
readonly authorChannelId: {
|
|
700
|
+
readonly type: readonly ["string", "null"];
|
|
701
|
+
};
|
|
702
|
+
readonly authorChannelUrl: {
|
|
703
|
+
readonly type: readonly ["string", "null"];
|
|
704
|
+
};
|
|
705
|
+
readonly authorProfileImageUrl: {
|
|
706
|
+
readonly type: readonly ["string", "null"];
|
|
707
|
+
};
|
|
708
|
+
readonly textDisplay: {
|
|
709
|
+
readonly type: "string";
|
|
710
|
+
};
|
|
711
|
+
readonly textOriginal: {
|
|
712
|
+
readonly type: readonly ["string", "null"];
|
|
713
|
+
};
|
|
714
|
+
readonly publishedAt: {
|
|
715
|
+
readonly type: readonly ["string", "null"];
|
|
716
|
+
};
|
|
717
|
+
readonly updatedAt: {
|
|
718
|
+
readonly type: readonly ["string", "null"];
|
|
719
|
+
};
|
|
720
|
+
readonly likeCount: {
|
|
721
|
+
readonly type: readonly ["integer", "null"];
|
|
722
|
+
readonly minimum: 0;
|
|
723
|
+
};
|
|
724
|
+
readonly viewerRating: {
|
|
725
|
+
readonly type: readonly ["string", "null"];
|
|
726
|
+
};
|
|
727
|
+
readonly canRate: {
|
|
728
|
+
readonly type: readonly ["boolean", "null"];
|
|
729
|
+
};
|
|
730
|
+
};
|
|
731
|
+
};
|
|
732
|
+
};
|
|
733
|
+
readonly failures: {
|
|
734
|
+
readonly type: "array";
|
|
735
|
+
readonly items: {
|
|
736
|
+
readonly type: "object";
|
|
737
|
+
readonly additionalProperties: false;
|
|
738
|
+
readonly required: readonly ["videoId", "code"];
|
|
739
|
+
readonly properties: {
|
|
740
|
+
readonly videoId: {
|
|
741
|
+
readonly type: "string";
|
|
742
|
+
readonly minLength: 11;
|
|
743
|
+
readonly maxLength: 11;
|
|
744
|
+
readonly pattern: "^[A-Za-z0-9_-]{11}$";
|
|
745
|
+
};
|
|
746
|
+
readonly code: {
|
|
747
|
+
readonly type: "string";
|
|
748
|
+
readonly minLength: 1;
|
|
749
|
+
};
|
|
750
|
+
};
|
|
751
|
+
};
|
|
752
|
+
};
|
|
753
|
+
readonly replyCompleteness: {
|
|
754
|
+
readonly type: "object";
|
|
755
|
+
readonly additionalProperties: false;
|
|
756
|
+
readonly required: readonly ["requested", "strategy", "completeWithinLimits"];
|
|
757
|
+
readonly properties: {
|
|
758
|
+
readonly requested: {
|
|
759
|
+
readonly type: "boolean";
|
|
760
|
+
};
|
|
761
|
+
readonly strategy: {
|
|
762
|
+
readonly enum: readonly ["not-requested", "comments-list-pagination"];
|
|
763
|
+
};
|
|
764
|
+
readonly completeWithinLimits: {
|
|
765
|
+
readonly type: "boolean";
|
|
766
|
+
};
|
|
767
|
+
};
|
|
768
|
+
};
|
|
769
|
+
readonly stopReason: {
|
|
770
|
+
readonly enum: readonly ["completed", "no-results", "max-pages", "max-records", "partial"];
|
|
771
|
+
};
|
|
772
|
+
};
|
|
773
|
+
};
|