flashdata-cli 1.1.0__py3-none-win_amd64.whl

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.
Files changed (55) hide show
  1. flashdata_cli/__init__.py +32 -0
  2. flashdata_cli/__main__.py +4 -0
  3. flashdata_cli/bin/flashdata.exe +0 -0
  4. flashdata_cli/provenance.json +9 -0
  5. flashdata_cli/share/CHANGELOG.md +34 -0
  6. flashdata_cli/share/CONTRIBUTING.md +35 -0
  7. flashdata_cli/share/LICENSE +21 -0
  8. flashdata_cli/share/README.md +251 -0
  9. flashdata_cli/share/README.zh-CN.md +250 -0
  10. flashdata_cli/share/SECURITY.md +7 -0
  11. flashdata_cli/share/THIRD_PARTY_NOTICES.md +18 -0
  12. flashdata_cli/share/docs/bulk.md +29 -0
  13. flashdata_cli/share/docs/commands.md +548 -0
  14. flashdata_cli/share/docs/installation.md +304 -0
  15. flashdata_cli/share/docs/installation.zh-CN.md +304 -0
  16. flashdata_cli/share/docs/migration.md +13 -0
  17. flashdata_cli/share/docs/onboarding.md +21 -0
  18. flashdata_cli/share/docs/release-notes-1.0.0.md +47 -0
  19. flashdata_cli/share/docs/release-notes-1.0.1.md +43 -0
  20. flashdata_cli/share/docs/release-notes-1.1.0.md +44 -0
  21. flashdata_cli/share/docs/release-readiness.md +28 -0
  22. flashdata_cli/share/docs/releases.md +42 -0
  23. flashdata_cli/share/docs/response-formats.md +87 -0
  24. flashdata_cli/share/docs/review.md +41 -0
  25. flashdata_cli/share/docs/runs.md +47 -0
  26. flashdata_cli/share/docs/sdk-parity.md +126 -0
  27. flashdata_cli/share/docs/security.md +29 -0
  28. flashdata_cli/share/docs/validation.md +69 -0
  29. flashdata_cli/share/examples/README.md +11 -0
  30. flashdata_cli/share/examples/batch.json +1 -0
  31. flashdata_cli/share/examples/bulk-create.json +1 -0
  32. flashdata_cli/share/examples/bulk-options.json +1 -0
  33. flashdata_cli/share/examples/bulk-update.json +1 -0
  34. flashdata_cli/share/examples/download-options.json +1 -0
  35. flashdata_cli/share/examples/ids.txt +2 -0
  36. flashdata_cli/share/examples/query-flat.json +1 -0
  37. flashdata_cli/share/examples/query.json +1 -0
  38. flashdata_cli/share/examples/storage.example.json +8 -0
  39. flashdata_cli/share/examples/youtube-metadata.json +1 -0
  40. flashdata_cli/share/licenses/Go_standard_library_1.27.3_LICENSE.txt +27 -0
  41. flashdata_cli/share/licenses/github.com_ebitengine_purego_v0.9.0_LICENSE.txt +201 -0
  42. flashdata_cli/share/licenses/github.com_flashdatadev_flashdata-go_v1.1.0_LICENSE.txt +21 -0
  43. flashdata_cli/share/licenses/github.com_godbus_dbus_v5_v5.1.0_LICENSE.txt +25 -0
  44. flashdata_cli/share/licenses/github.com_inconshreveable_mousetrap_v1.1.0_LICENSE.txt +201 -0
  45. flashdata_cli/share/licenses/github.com_santhosh-tekuri_jsonschema_v5_v5.3.1_LICENSE.txt +175 -0
  46. flashdata_cli/share/licenses/github.com_spf13_cobra_v1.10.2_LICENSE.txt +174 -0
  47. flashdata_cli/share/licenses/github.com_spf13_pflag_v1.0.9_LICENSE.txt +28 -0
  48. flashdata_cli/share/licenses/golang.org_x_sys_v0.36.0_LICENSE.txt +27 -0
  49. flashdata_cli/share/licenses/golang.org_x_term_v0.35.0_LICENSE.txt +27 -0
  50. flashdata_cli/share/release-files.json +48 -0
  51. flashdata_cli-1.1.0.dist-info/METADATA +71 -0
  52. flashdata_cli-1.1.0.dist-info/RECORD +55 -0
  53. flashdata_cli-1.1.0.dist-info/WHEEL +4 -0
  54. flashdata_cli-1.1.0.dist-info/entry_points.txt +2 -0
  55. flashdata_cli-1.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,18 @@
1
+ # Third-party notices
2
+
3
+ [FlashData](https://flashdata.dev) · [API documentation](https://flashdata.dev/docs)
4
+
5
+ License and notice texts copied from the dependencies pinned by current go.mod. FlashData source is covered by [LICENSE](LICENSE). These copies do not change upstream license terms.
6
+
7
+ | Component | Version | License / notice text |
8
+ | --- | --- | --- |
9
+ | `github.com/ebitengine/purego` | v0.9.0 | [LICENSE](licenses/github.com_ebitengine_purego_v0.9.0_LICENSE.txt) |
10
+ | `github.com/flashdatadev/flashdata-go` | v1.1.0 | [LICENSE](licenses/github.com_flashdatadev_flashdata-go_v1.1.0_LICENSE.txt) |
11
+ | `github.com/godbus/dbus/v5` | v5.1.0 | [LICENSE](licenses/github.com_godbus_dbus_v5_v5.1.0_LICENSE.txt) |
12
+ | `github.com/spf13/cobra` | v1.10.2 | [LICENSE.txt](licenses/github.com_spf13_cobra_v1.10.2_LICENSE.txt) |
13
+ | `github.com/spf13/pflag` | v1.0.9 | [LICENSE](licenses/github.com_spf13_pflag_v1.0.9_LICENSE.txt) |
14
+ | `golang.org/x/sys` | v0.36.0 | [LICENSE](licenses/golang.org_x_sys_v0.36.0_LICENSE.txt) |
15
+ | `golang.org/x/term` | v0.35.0 | [LICENSE](licenses/golang.org_x_term_v0.35.0_LICENSE.txt) |
16
+ | `github.com/inconshreveable/mousetrap` | v1.1.0 | [LICENSE](licenses/github.com_inconshreveable_mousetrap_v1.1.0_LICENSE.txt) |
17
+ | `github.com/santhosh-tekuri/jsonschema/v5` | v5.3.1 | [LICENSE](licenses/github.com_santhosh-tekuri_jsonschema_v5_v5.3.1_LICENSE.txt) |
18
+ | `Go standard library` | 1.27.3 | [LICENSE](licenses/Go_standard_library_1.27.3_LICENSE.txt) |
@@ -0,0 +1,29 @@
1
+ # Bulk data and media delivery
2
+
3
+ [FlashData](https://flashdata.dev) · [API documentation](https://flashdata.dev/docs)
4
+
5
+ See the complete commands in the [English README](../README.md#complete-bulk-workflow) or [简体中文](../README.zh-CN.md). Supported sources are youtube_metadata, youtube_transcript, youtube_captions, youtube_trainability and youtube_download. Options are validated through the Go SDK before job creation.
6
+
7
+ `bulk run` checks the ID file, private option/storage files, output path, scopes and recurring requirements, then commits intent. It creates one job, atomically stores the signed upload descriptor and run-to-job link in the protected vault, commits the remote ID in the journal, uploads once, starts and waits. A crash between vault and journal commits can recover the remote ID from the private link. The public receipt never includes the upload URL.
8
+
9
+ A repeated existing run never uploads or creates another task. `runs recover` performs safe status/result reads only. If input/start is missing, it returns explicit instructions for `bulk upload` and `bulk start`. Upload binds to the SHA-256 of the original file; another file conflicts. Explicit same-file PUT retry is only permitted while the same draft awaits input and the original URL remains valid. A lost start response is resolved by Get; an already-started job is not started again.
10
+
11
+ Bulk control commands operate on existing IDs: get/list/start/pause/resume/cancel/wait/results/update. `resume` requires a paused job and an explicit command after correcting its cause. `update --input` accepts a private JSON object containing partial options and callback_url (string or null to remove). Data result copies use options.result_storage; media download destination uses options.storage. Server-side credential merging and provider rules remain authoritative.
12
+
13
+ Manual metadata inputs are provided as examples/bulk-create.json and examples/bulk-update.json. Both create and update accept --input -; pipe these non-secret examples directly on PowerShell or redirect them on Bash as described in the command reference and source inputs. Apply the metadata options example before upload/start. Once a scan is complete, the backend permits only the documented credential-only result_storage patch on a paused customer-delivery job; a generic options patch is not valid in that state. A paused coordinator may need time to release its lease before updates are allowed. Control commands refresh local stages, and signed upload capabilities are discarded after the job leaves awaiting_upload.
14
+
15
+ ID files contain one 11-character video ID per line, from 1 byte through 2 GiB. Upload capability expires after 15 minutes; internal results remain for 24 hours. Customer buckets follow their own retention. SDK limits bound each compressed/decompressed part to 64 MiB and each row to 16 MiB by default. CLI result export streams across parts without assembling the whole dataset in memory.
16
+
17
+ Validation streams the IDs into a private temporary snapshot. The hash, byte count and upload all use that snapshot, so editing or appending to the original file during API calls cannot change the validated upload. Temporary disk space up to the input size is required, including for a dry-run. Snapshots are removed when the command returns; a forcibly killed process may leave a private flashdata-ids-*.tmp file in the OS temporary directory. Preserve active snapshots until the owning process exits before any manual cleanup.
18
+
19
+ S3, S3-compatible, OSS, GCS, Azure, COS, BOS and TOS shapes are supported. storage_url is a bucket/container name. GCS requires a service account; Azure needs account_name and a write-capable SAS; provider endpoint/region/permissions must be valid. No example invents real credentials. Media files are delivered into your cloud destination; JSONL reports outcomes, not video bytes.
20
+
21
+ Check each row's status, even for a completed job. The CLI preserves invalid/failed rows and exits nonzero for item failures. A malformed/interrupted stream leaves a partial export; inspect/recover by run ID using a fresh output filename. Disk failures preserve the original intent/remote ID wherever possible, and never authorize replaying creation. An expired upload capability is not renewed by creating another job automatically.
22
+
23
+ ## Lost responses and partial receipts
24
+
25
+ A lost start response keeps the original bulk ID and input fingerprint. `runs recover` first reads current remote state; after observing that input upload is no longer permitted it removes spent upload capabilities, then fetches results without another create, upload or start. Partial gzip/result transfers remain partial during cached exports, retain available rows and exit nonzero. Corrected safe result reads can complete the original journal.
26
+
27
+ MP3 audio and MP4 video use the same lifecycle; choose the matching private options file
28
+ shown in the README. See the [SDK and CLI comparison](sdk-parity.md) for all source
29
+ coverage, media examples and recovery differences.
@@ -0,0 +1,548 @@
1
+ # Command reference
2
+
3
+ [FlashData](https://flashdata.dev) · [API documentation](https://flashdata.dev/docs)
4
+
5
+ Generated from `flashdata commands --json`. Every operational command supports the global profile, state directory, credential protection, timeout and output-mode flags. Keys are accepted only through hidden input/stdin or an explicitly configured environment variable.
6
+
7
+ This reference describes CLI v1.1.0, including JSON, plain-text and Markdown response flags. See [response formats](response-formats.md) for examples. `discover plans` and `discover status` read public endpoints without an API key.
8
+
9
+ ## flashdata
10
+
11
+ FlashData search, YouTube and bulk data workflows
12
+
13
+ Usage: `flashdata`
14
+
15
+ | Flag | Type | Default | Purpose |
16
+ | --- | --- | --- | --- |
17
+ | `--credential-store` | string | `auto` | auto, os, or file (protected persistent file) |
18
+ | `--data-origin` | string | `` | pin the data origin for a new profile |
19
+ | `--json` | bool | `false` | versioned machine-readable output |
20
+ | `--management-origin` | string | `` | pin the management origin for a new profile |
21
+ | `--non-interactive` | bool | `false` | disable prompts and browser opening |
22
+ | `--profile` | string | `default` | isolated saved connection |
23
+ | `--state-dir` | string | `` | private persistent state directory |
24
+ | `--timeout` | duration | `2m0s` | overall command deadline; accepted server work continues |
25
+ | `--version` | bool | `false` | show version offline |
26
+ | `--web-origin` | string | `` | pin the browser origin for a new profile |
27
+
28
+ ## flashdata account
29
+
30
+ Read shared balance, source pricing, limits and usage
31
+
32
+ Usage: `account`
33
+
34
+ ## flashdata account balance
35
+
36
+ Read account balance without submitting paid work
37
+
38
+ Usage: `balance`
39
+
40
+ ## flashdata account limits
41
+
42
+ Read account limits without submitting paid work
43
+
44
+ Usage: `limits`
45
+
46
+ ## flashdata account pricing
47
+
48
+ Read account pricing without submitting paid work
49
+
50
+ Usage: `pricing`
51
+
52
+ | Flag | Type | Default | Purpose |
53
+ | --- | --- | --- | --- |
54
+ | `--request-count` | int | `1` | estimate this many requests |
55
+ | `--source` | string | `` | filter by source |
56
+
57
+ ## flashdata account usage
58
+
59
+ Read account usage without submitting paid work
60
+
61
+ Usage: `usage`
62
+
63
+ | Flag | Type | Default | Purpose |
64
+ | --- | --- | --- | --- |
65
+ | `--from` | string | `` | RFC3339 start time |
66
+ | `--source` | string | `` | filter by source |
67
+ | `--to` | string | `` | RFC3339 end time |
68
+
69
+ ## flashdata auth
70
+
71
+ Manage API-key profiles and browser claiming
72
+
73
+ Usage: `auth`
74
+
75
+ ## flashdata auth claim
76
+
77
+ Create the browser approval URL and separate confirmation code
78
+
79
+ Usage: `claim`
80
+
81
+ ## flashdata auth finish
82
+
83
+ Save, independently verify and acknowledge the approved owner key
84
+
85
+ Usage: `finish`
86
+
87
+ | Flag | Type | Default | Purpose |
88
+ | --- | --- | --- | --- |
89
+ | `--wait` | bool | `false` | wait for browser approval within --timeout |
90
+
91
+ ## flashdata auth login
92
+
93
+ Import and verify an API key using hidden input or stdin
94
+
95
+ Usage: `login`
96
+
97
+ | Flag | Type | Default | Purpose |
98
+ | --- | --- | --- | --- |
99
+ | `--api-key-stdin` | bool | `false` | read exactly one API key from standard input |
100
+ | `--replace` | bool | `false` | explicitly replace saved onboarding credentials, retaining history |
101
+
102
+ ## flashdata auth logout
103
+
104
+ Remove local credentials and retain run history; does not revoke remote access
105
+
106
+ Usage: `logout`
107
+
108
+ ## flashdata auth migrate
109
+
110
+ Explicitly migrate the version-2 script state without resetting history
111
+
112
+ Usage: `migrate`
113
+
114
+ | Flag | Type | Default | Purpose |
115
+ | --- | --- | --- | --- |
116
+ | `--from` | string | `` | legacy private connection.json file |
117
+
118
+ ## flashdata auth status
119
+
120
+ Verify access, scopes, expiry and claim status
121
+
122
+ Usage: `status`
123
+
124
+ ## flashdata batch
125
+
126
+ Background mixed-source batch submission
127
+
128
+ Usage: `batch`
129
+
130
+ ## flashdata batch submit
131
+
132
+ Validate all input and submit a batch once
133
+
134
+ Usage: `submit`
135
+
136
+ | Flag | Type | Default | Purpose |
137
+ | --- | --- | --- | --- |
138
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
139
+ | `--dry-run` | bool | `false` | validate without a paid submission |
140
+ | `--input` | string | `` | JSON file, or - for stdin |
141
+ | `--output` | string | `` | new result or submission-receipt output file |
142
+ | `--recurring` | bool | `false` | require verified owned/installed access |
143
+ | `--respond-with` | string | `` | markdown for realtime or completed results; omit for original fields |
144
+ | `--run-id` | string | `` | stable execution ID; required for recurring work |
145
+ | `--wait` | bool | `false` | wait for all accepted batch jobs |
146
+
147
+ ## flashdata bulk
148
+
149
+ Create, upload, control and recover durable bulk tasks
150
+
151
+ Usage: `bulk`
152
+
153
+ ## flashdata bulk cancel
154
+
155
+ cancel an existing bulk job; never creates replacement work
156
+
157
+ Usage: `cancel BULK_ID`
158
+
159
+ ## flashdata bulk create
160
+
161
+ Create a bulk draft once and privately retain its signed upload capability
162
+
163
+ Usage: `create`
164
+
165
+ | Flag | Type | Default | Purpose |
166
+ | --- | --- | --- | --- |
167
+ | `--dry-run` | bool | `false` | validate without a paid submission |
168
+ | `--input` | string | `` | private CreateBulkJobRequest JSON file, or - for stdin |
169
+ | `--output` | string | `` | new result or submission-receipt output file |
170
+ | `--recurring` | bool | `false` | require verified owned/installed access |
171
+ | `--run-id` | string | `` | stable execution ID; required for recurring work |
172
+
173
+ ## flashdata bulk get
174
+
175
+ get an existing bulk job; never creates replacement work
176
+
177
+ Usage: `get BULK_ID`
178
+
179
+ ## flashdata bulk list
180
+
181
+ List existing remote bulk jobs
182
+
183
+ Usage: `list`
184
+
185
+ | Flag | Type | Default | Purpose |
186
+ | --- | --- | --- | --- |
187
+ | `--cursor` | string | `` | opaque page cursor |
188
+ | `--limit` | int | `20` | page size, 1–50 |
189
+
190
+ ## flashdata bulk pause
191
+
192
+ pause an existing bulk job; never creates replacement work
193
+
194
+ Usage: `pause BULK_ID`
195
+
196
+ ## flashdata bulk results
197
+
198
+ results an existing bulk job; never creates replacement work
199
+
200
+ Usage: `results BULK_ID`
201
+
202
+ | Flag | Type | Default | Purpose |
203
+ | --- | --- | --- | --- |
204
+ | `--output` | string | `` | new NDJSON receipt output file |
205
+ | `--run-id` | string | `` | local recovery record to reuse |
206
+
207
+ ## flashdata bulk resume
208
+
209
+ resume an existing bulk job; never creates replacement work
210
+
211
+ Usage: `resume BULK_ID`
212
+
213
+ ## flashdata bulk run
214
+
215
+ Create once, upload IDs, start, wait and save NDJSON receipts
216
+
217
+ Usage: `run`
218
+
219
+ | Flag | Type | Default | Purpose |
220
+ | --- | --- | --- | --- |
221
+ | `--dry-run` | bool | `false` | validate without a paid submission |
222
+ | `--input` | string | `` | UTF-8 video-ID file |
223
+ | `--options` | string | `` | private shared source-options JSON file |
224
+ | `--output` | string | `` | new result or submission-receipt output file |
225
+ | `--recurring` | bool | `false` | require verified owned/installed access |
226
+ | `--run-id` | string | `` | stable execution ID; required for recurring work |
227
+ | `--source` | string | `youtube_metadata` | one of five YouTube bulk sources |
228
+ | `--storage-config` | string | `` | private customer storage JSON |
229
+
230
+ ## flashdata bulk start
231
+
232
+ start an existing bulk job; never creates replacement work
233
+
234
+ Usage: `start BULK_ID`
235
+
236
+ ## flashdata bulk update
237
+
238
+ update an existing bulk job; never creates replacement work
239
+
240
+ Usage: `update BULK_ID`
241
+
242
+ | Flag | Type | Default | Purpose |
243
+ | --- | --- | --- | --- |
244
+ | `--input` | string | `` | private partial options/callback JSON file, or - for stdin |
245
+
246
+ ## flashdata bulk upload
247
+
248
+ Explicitly upload the original ID file to a saved draft
249
+
250
+ Usage: `upload BULK_ID`
251
+
252
+ | Flag | Type | Default | Purpose |
253
+ | --- | --- | --- | --- |
254
+ | `--input` | string | `` | original video-ID file |
255
+ | `--run-id` | string | `` | owning local run ID (auto-detected when unique) |
256
+
257
+ ## flashdata bulk wait
258
+
259
+ wait an existing bulk job; never creates replacement work
260
+
261
+ Usage: `wait BULK_ID`
262
+
263
+ ## flashdata commands
264
+
265
+ Return the command tree for agent discovery
266
+
267
+ Usage: `commands`
268
+
269
+ | Flag | Type | Default | Purpose |
270
+ | --- | --- | --- | --- |
271
+ | `--help` | bool | `false` | help for commands |
272
+
273
+ ## flashdata discover
274
+
275
+ Read service health, onboarding capabilities and documentation
276
+
277
+ Usage: `discover`
278
+
279
+ ## flashdata discover plans
280
+
281
+ Read the public plan catalog without an API key
282
+
283
+ Usage: `plans`
284
+
285
+ ## flashdata discover status
286
+
287
+ Read public service status without an API key
288
+
289
+ Usage: `status`
290
+
291
+ ## flashdata doctor
292
+
293
+ Diagnose storage and access without paid queries or account mutations
294
+
295
+ Usage: `doctor`
296
+
297
+ | Flag | Type | Default | Purpose |
298
+ | --- | --- | --- | --- |
299
+ | `--offline` | bool | `false` | inspect local storage only |
300
+
301
+ ## flashdata help
302
+
303
+ Help about any command
304
+
305
+ Usage: `help [command]`
306
+
307
+ ## flashdata init
308
+
309
+ Reuse saved access or durably register one temporary connection
310
+
311
+ Usage: `init`
312
+
313
+ | Flag | Type | Default | Purpose |
314
+ | --- | --- | --- | --- |
315
+ | `--audience` | string | `coding` | coding or personal |
316
+ | `--client` | string | `flashdata-cli` | self-reported client label |
317
+ | `--name` | string | `` | connection name; required to start a new trial |
318
+ | `--scopes` | string | `google_search,youtube_metadata` | comma-separated trial source names |
319
+
320
+ ## flashdata jobs
321
+
322
+ Read, wait for and recover accepted background jobs
323
+
324
+ Usage: `jobs`
325
+
326
+ ## flashdata jobs get
327
+
328
+ get an accepted job; never submits work
329
+
330
+ Usage: `get JOB_ID`
331
+
332
+ | Flag | Type | Default | Purpose |
333
+ | --- | --- | --- | --- |
334
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
335
+
336
+ ## flashdata jobs result
337
+
338
+ result an accepted job; never submits work
339
+
340
+ Usage: `result JOB_ID`
341
+
342
+ | Flag | Type | Default | Purpose |
343
+ | --- | --- | --- | --- |
344
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
345
+ | `--output` | string | `` | new result output file |
346
+ | `--respond-with` | string | `` | markdown for realtime or completed results; omit for original fields |
347
+
348
+ ## flashdata jobs wait
349
+
350
+ wait an accepted job; never submits work
351
+
352
+ Usage: `wait JOB_ID`
353
+
354
+ | Flag | Type | Default | Purpose |
355
+ | --- | --- | --- | --- |
356
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
357
+
358
+ ## flashdata query
359
+
360
+ Validate and execute a Data API JSON request
361
+
362
+ Usage: `query`
363
+
364
+ | Flag | Type | Default | Purpose |
365
+ | --- | --- | --- | --- |
366
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
367
+ | `--dry-run` | bool | `false` | validate without a paid submission |
368
+ | `--input` | string | `` | JSON file, or - for stdin |
369
+ | `--mode` | string | `realtime` | realtime or async |
370
+ | `--output` | string | `` | new result or submission-receipt output file |
371
+ | `--recurring` | bool | `false` | require verified owned/installed access |
372
+ | `--respond-with` | string | `` | markdown for realtime or completed results; omit for original fields |
373
+ | `--run-id` | string | `` | stable execution ID; required for recurring work |
374
+ | `--wait` | bool | `false` | wait for an accepted async job |
375
+
376
+ ## flashdata runs
377
+
378
+ Inspect durable local history and recover known accepted work
379
+
380
+ Usage: `runs`
381
+
382
+ ## flashdata runs list
383
+
384
+ List local execution metadata without network calls
385
+
386
+ Usage: `list`
387
+
388
+ | Flag | Type | Default | Purpose |
389
+ | --- | --- | --- | --- |
390
+ | `--limit` | int | `100` | maximum records displayed; history is never evicted |
391
+
392
+ ## flashdata runs recover
393
+
394
+ Read accepted remote jobs and save results; never resubmit a query or create a job
395
+
396
+ Usage: `recover RUN_ID`
397
+
398
+ | Flag | Type | Default | Purpose |
399
+ | --- | --- | --- | --- |
400
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
401
+ | `--output` | string | `` | new result output file |
402
+ | `--respond-with` | string | `` | markdown for realtime or completed results; omit for original fields |
403
+
404
+ ## flashdata runs show
405
+
406
+ Inspect a record; --result revalidates live access before reading saved data
407
+
408
+ Usage: `show RUN_ID`
409
+
410
+ | Flag | Type | Default | Purpose |
411
+ | --- | --- | --- | --- |
412
+ | `--output` | string | `` | new result output file |
413
+ | `--result` | bool | `false` | read the saved result after access verification |
414
+
415
+ ## flashdata search
416
+
417
+ Google Search with the normal query billing and recovery path
418
+
419
+ Usage: `search QUERY`
420
+
421
+ | Flag | Type | Default | Purpose |
422
+ | --- | --- | --- | --- |
423
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
424
+ | `--dry-run` | bool | `false` | validate without a paid submission |
425
+ | `--gl` | string | `` | country code |
426
+ | `--hl` | string | `` | interface language |
427
+ | `--mode` | string | `realtime` | realtime or async |
428
+ | `--num` | int64 | `0` | requested number of results |
429
+ | `--output` | string | `` | new result or submission-receipt output file |
430
+ | `--page` | int64 | `0` | requested page; separately billed |
431
+ | `--recurring` | bool | `false` | require verified owned/installed access |
432
+ | `--respond-with` | string | `` | markdown for realtime or completed results; omit for original fields |
433
+ | `--run-id` | string | `` | stable execution ID; required for recurring work |
434
+ | `--wait` | bool | `false` | wait for an accepted async job |
435
+
436
+ ## flashdata sources
437
+
438
+ Discover available, permitted and CLI-supported sources
439
+
440
+ Usage: `sources`
441
+
442
+ ## flashdata sources list
443
+
444
+ List source support and selected-key permissions
445
+
446
+ Usage: `list`
447
+
448
+ ## flashdata sources show
449
+
450
+ Show schema, defaults, modes, example and optional account pricing
451
+
452
+ Usage: `show SOURCE`
453
+
454
+ ## flashdata youtube
455
+
456
+ YouTube search, metadata, existing captions and media delivery
457
+
458
+ Usage: `youtube`
459
+
460
+ ## flashdata youtube captions
461
+
462
+ YouTube captions through the shared query workflow
463
+
464
+ Usage: `captions INPUT`
465
+
466
+ | Flag | Type | Default | Purpose |
467
+ | --- | --- | --- | --- |
468
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
469
+ | `--dry-run` | bool | `false` | validate without a paid submission |
470
+ | `--language` | string | `en` | caption language; existing tracks only |
471
+ | `--mode` | string | `realtime` | realtime or async |
472
+ | `--output` | string | `` | new result or submission-receipt output file |
473
+ | `--recurring` | bool | `false` | require verified owned/installed access |
474
+ | `--respond-with` | string | `` | markdown for realtime or completed results; omit for original fields |
475
+ | `--run-id` | string | `` | stable execution ID; required for recurring work |
476
+ | `--wait` | bool | `false` | wait for an accepted async job |
477
+
478
+ ## flashdata youtube download
479
+
480
+ Deliver media to private customer storage (background only)
481
+
482
+ Usage: `download VIDEO_ID`
483
+
484
+ | Flag | Type | Default | Purpose |
485
+ | --- | --- | --- | --- |
486
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
487
+ | `--dry-run` | bool | `false` | validate without a paid submission |
488
+ | `--format` | string | `mp3` | output format |
489
+ | `--mode` | string | `realtime` | realtime or async |
490
+ | `--output` | string | `` | new result or submission-receipt output file |
491
+ | `--recurring` | bool | `false` | require verified owned/installed access |
492
+ | `--respond-with` | string | `` | markdown for realtime or completed results; omit for original fields |
493
+ | `--run-id` | string | `` | stable execution ID; required for recurring work |
494
+ | `--storage-config` | string | `` | private customer-storage JSON file |
495
+ | `--wait` | bool | `false` | wait for an accepted async job |
496
+
497
+ ## flashdata youtube metadata
498
+
499
+ YouTube metadata through the shared query workflow
500
+
501
+ Usage: `metadata INPUT`
502
+
503
+ | Flag | Type | Default | Purpose |
504
+ | --- | --- | --- | --- |
505
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
506
+ | `--dry-run` | bool | `false` | validate without a paid submission |
507
+ | `--mode` | string | `realtime` | realtime or async |
508
+ | `--output` | string | `` | new result or submission-receipt output file |
509
+ | `--recurring` | bool | `false` | require verified owned/installed access |
510
+ | `--respond-with` | string | `` | markdown for realtime or completed results; omit for original fields |
511
+ | `--run-id` | string | `` | stable execution ID; required for recurring work |
512
+ | `--wait` | bool | `false` | wait for an accepted async job |
513
+
514
+ ## flashdata youtube search
515
+
516
+ YouTube search through the shared query workflow
517
+
518
+ Usage: `search INPUT`
519
+
520
+ | Flag | Type | Default | Purpose |
521
+ | --- | --- | --- | --- |
522
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
523
+ | `--dry-run` | bool | `false` | validate without a paid submission |
524
+ | `--max-results` | int64 | `0` | requested number of search results |
525
+ | `--mode` | string | `realtime` | realtime or async |
526
+ | `--output` | string | `` | new result or submission-receipt output file |
527
+ | `--recurring` | bool | `false` | require verified owned/installed access |
528
+ | `--respond-with` | string | `` | markdown for realtime or completed results; omit for original fields |
529
+ | `--run-id` | string | `` | stable execution ID; required for recurring work |
530
+ | `--wait` | bool | `false` | wait for an accepted async job |
531
+
532
+ ## flashdata youtube transcript
533
+
534
+ YouTube transcript through the shared query workflow
535
+
536
+ Usage: `transcript INPUT`
537
+
538
+ | Flag | Type | Default | Purpose |
539
+ | --- | --- | --- | --- |
540
+ | `--accept` | string | `application/json` | API response type: application/json or text/plain |
541
+ | `--dry-run` | bool | `false` | validate without a paid submission |
542
+ | `--language` | string | `en` | caption language; existing tracks only |
543
+ | `--mode` | string | `realtime` | realtime or async |
544
+ | `--output` | string | `` | new result or submission-receipt output file |
545
+ | `--recurring` | bool | `false` | require verified owned/installed access |
546
+ | `--respond-with` | string | `` | markdown for realtime or completed results; omit for original fields |
547
+ | `--run-id` | string | `` | stable execution ID; required for recurring work |
548
+ | `--wait` | bool | `false` | wait for an accepted async job |