Issue #1634. Index of QuorumProof video tutorials for common tasks, with the script, captions, and recording status for each. Text-only docs remain the reference; the videos are a guided on-ramp.
| # | Tutorial | Audience | Length | Script | Captions | Video |
|---|---|---|---|---|---|---|
| 1 | Getting started: build, deploy to testnet, run the API | Contributors, integrators | ~8 min | script | en.vtt | Recording pending |
| 2 | Creating a quorum slice | Credential holders, integrators | ~6 min | script | en.vtt | Recording pending |
| 3 | Issuing and attesting a credential | Issuers, attestors | ~7 min | script | en.vtt | Recording pending |
| 4 | Verifying credentials through the REST API | Verifiers (employers, firms) | ~6 min | script | en.vtt | Recording pending |
| 5 | Sharing a credential and revoking access | Credential holders | ~5 min | script | en.vtt | Recording pending |
When a video is published, replace "Recording pending" with a link to it and fill in the exact runtime.
- I want to contribute code: 1 → 2 → 3, then architecture.md.
- I want to verify engineers' credentials: 4, then api-response-examples.md.
- I am an engineer building my credential profile: 2 → 5, then privacy-guide.md.
- I run an issuing institution: 3, then issuer-security-checklist.md.
docs/
├── video-tutorials.md ← this index
└── tutorials/
├── scripts/NN-<slug>.md ← narration + on-screen actions, per scene
└── captions/NN-<slug>.en.vtt ← WebVTT captions (one file per language)
Additional caption languages use the same slug with a different BCP 47 tag,
e.g. 03-issue-and-attest.es.vtt.
Every script uses the same structure so recordings stay consistent:
- Header — title, audience, prerequisites, target length, learning goals.
- Scenes — numbered, each with a timecode budget,
On screen(what the viewer sees / what the presenter types), andNarration(what is said). - Recap — three to five bullet takeaways.
- Links — the text docs the video summarizes.
Keep commands in scripts copy-pasteable and identical to what is typed on screen. Use testnet only and placeholder addresses; never show a real secret key, even a testnet one.
- Resolution: 1920×1080 at 30 fps. Terminal and editor font ≥ 18 pt.
- Terminal: light or dark theme with high contrast; hide the prompt's
hostname/username (
export PS1='$ '). - Browser: clean profile, no extensions visible, zoom 125 %.
- Audio: external microphone, quiet room, −16 LUFS integrated loudness.
- Tools: OBS Studio (free) or any screen recorder that outputs MP4/H.264.
- Run through the script end to end on a fresh testnet identity.
- Pre-fund accounts with Friendbot so there is no waiting on camera.
- Export environment variables used in the script in a hidden shell.
- Close notifications, chat apps, and anything showing personal data.
- Follow the script scene by scene; small ad-libs are fine but keep commands exactly as written so captions stay in sync.
- Pause ~1 s after each command's output appears so viewers can read it.
- If a command fails, stop, fix, and re-record the scene rather than editing around it.
- Trim dead air; keep each scene within its timecode budget (±15 s).
- Update the caption timestamps in the matching
.vttfile to the final cut (see below). - Scrub the video for secrets, personal addresses, or tokens before upload.
- Upload (unlisted first), get a second reviewer to watch it, then publish.
- Update the index table above with the link and runtime.
All videos must ship with captions. Captions are WebVTT files kept in the repo so they can be reviewed and translated like any other doc.
- Caption text follows the script narration verbatim, split into cues of at most two lines and ~42 characters per line.
- Each cue shows for 1–7 seconds.
- Identify on-screen commands in captions only when they are spoken.
- Non-speech audio that matters is marked in brackets, e.g.
[typing]. - The timestamps committed with each script are planning estimates based on the script's timecode budget. Re-time them against the final edit before uploading (e.g. with Subtitle Edit or Aegisub), and commit the re-timed file.
- Upload the
.vttto the video host as the default English track; do not rely on auto-generated captions.
A valid file starts with WEBVTT, has a blank line between cues, and each
cue timing line matches HH:MM:SS.mmm --> HH:MM:SS.mmm. Most players and
ffmpeg -i video.mp4 -i captions.vtt … will reject malformed files.
- Pick the next number and a short slug.
- Write
tutorials/scripts/NN-<slug>.mdusing the script format above. - Write
tutorials/captions/NN-<slug>.en.vttfrom the narration. - Add a row to the tutorial index with "Recording pending".
- Open a PR; once merged, record following the recording guide.