diff --git a/README.md b/README.md
index b3fef966..1b1f6943 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@ Integrates Yomitan and mpv - on-screen lookups, mine to Anki, and track immersio
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://www.typescriptlang.org)
-[](https://github.com/user-attachments/assets/89e61895-e2b7-4b47-8d50-a35afe4132b2)
+[](./assets/minecard.mp4)
diff --git a/assets/minecard-poster.jpg b/assets/minecard-poster.jpg
deleted file mode 100644
index b33b3688..00000000
Binary files a/assets/minecard-poster.jpg and /dev/null differ
diff --git a/assets/minecard.gif b/assets/minecard.gif
deleted file mode 100644
index 989212b3..00000000
Binary files a/assets/minecard.gif and /dev/null differ
diff --git a/assets/minecard.jpg b/assets/minecard.jpg
deleted file mode 100644
index 0734e8b1..00000000
Binary files a/assets/minecard.jpg and /dev/null differ
diff --git a/assets/minecard.mp4 b/assets/minecard.mp4
index 1865a6de..94773a6a 100644
Binary files a/assets/minecard.mp4 and b/assets/minecard.mp4 differ
diff --git a/assets/minecard.webm b/assets/minecard.webm
deleted file mode 100644
index eaf7e42a..00000000
Binary files a/assets/minecard.webm and /dev/null differ
diff --git a/assets/minecard.webp b/assets/minecard.webp
index 97400630..f064dda6 100644
Binary files a/assets/minecard.webp and b/assets/minecard.webp differ
diff --git a/changes/replace-minecard-demo.md b/changes/replace-minecard-demo.md
new file mode 100644
index 00000000..3c65060a
--- /dev/null
+++ b/changes/replace-minecard-demo.md
@@ -0,0 +1,4 @@
+type: docs
+area: docs
+
+- Replaced the README and documentation mining demo with the current card-mining workflow.
diff --git a/docs-site/demos.md b/docs-site/demos.md
index 4892e1c8..e0097d4e 100644
--- a/docs-site/demos.md
+++ b/docs-site/demos.md
@@ -5,7 +5,7 @@ Short recordings of SubMiner's key features and integrations from real playback
## Anki Card Mining & Enrichment
diff --git a/docs-site/index.md b/docs-site/index.md
index 2454169c..1a3b2d19 100644
--- a/docs-site/index.md
+++ b/docs-site/index.md
@@ -88,7 +88,7 @@ features:
diff --git a/docs-site/public/assets/minecard-poster.jpg b/docs-site/public/assets/minecard-poster.jpg
index c338624e..68228757 100644
Binary files a/docs-site/public/assets/minecard-poster.jpg and b/docs-site/public/assets/minecard-poster.jpg differ
diff --git a/docs-site/public/assets/minecard.gif b/docs-site/public/assets/minecard.gif
deleted file mode 100644
index 989212b3..00000000
Binary files a/docs-site/public/assets/minecard.gif and /dev/null differ
diff --git a/docs-site/public/assets/minecard.jpg b/docs-site/public/assets/minecard.jpg
deleted file mode 100644
index 0734e8b1..00000000
Binary files a/docs-site/public/assets/minecard.jpg and /dev/null differ
diff --git a/docs-site/public/assets/minecard.mkv b/docs-site/public/assets/minecard.mkv
deleted file mode 100644
index 65cf05d7..00000000
Binary files a/docs-site/public/assets/minecard.mkv and /dev/null differ
diff --git a/docs-site/public/assets/minecard.mp4 b/docs-site/public/assets/minecard.mp4
index 1865a6de..94773a6a 100644
Binary files a/docs-site/public/assets/minecard.mp4 and b/docs-site/public/assets/minecard.mp4 differ
diff --git a/docs-site/public/assets/minecard.png b/docs-site/public/assets/minecard.png
deleted file mode 100644
index 3d8c767a..00000000
Binary files a/docs-site/public/assets/minecard.png and /dev/null differ
diff --git a/docs-site/public/assets/minecard.webm b/docs-site/public/assets/minecard.webm
index eaf7e42a..580e3bd3 100644
Binary files a/docs-site/public/assets/minecard.webm and b/docs-site/public/assets/minecard.webm differ
diff --git a/docs-site/public/assets/minecard.webp b/docs-site/public/assets/minecard.webp
index 97400630..f064dda6 100644
Binary files a/docs-site/public/assets/minecard.webp and b/docs-site/public/assets/minecard.webp differ
diff --git a/scripts/mkv-to-readme-video.sh b/scripts/mkv-to-readme-video.sh
index faadd370..42963ebf 100755
--- a/scripts/mkv-to-readme-video.sh
+++ b/scripts/mkv-to-readme-video.sh
@@ -19,7 +19,8 @@ Options:
-w, --webp Generate animated WebP preview
Encoding profile:
- - Crop: 1920x1080 at x=760 y=200
+ - Crop: mpv region at 1920x1080, x=760 y=205 on a 3440x1440 canvas
+ - Output size: 1920x1080
- MP4: H.264 + AAC
- WebM: AV1/VP9 + Opus at 30 fps
USAGE
@@ -148,7 +149,8 @@ pick_webp_encoder() {
return 1
}
-crop_vf="crop=1920:1080:760:205"
+# OBS may resize the 3440x1440 canvas, so scale the mpv bounds with the input.
+crop_vf="crop=1920*iw/3440:1080*ih/1440:760*iw/3440:205*ih/1440,scale=1920:1080:flags=lanczos"
webm_vf="${crop_vf},fps=30"
echo "Generating MP4: $mp4_out"
diff --git a/scripts/mkv-to-readme-video.test.ts b/scripts/mkv-to-readme-video.test.ts
index 5ff99b09..91c1b96b 100644
--- a/scripts/mkv-to-readme-video.test.ts
+++ b/scripts/mkv-to-readme-video.test.ts
@@ -40,7 +40,7 @@ function toBashPath(filePath: string): string {
return `${drive.toUpperCase()}:/${rest}`;
}
-test('mkv-to-readme-video accepts libwebp_anim when libwebp is unavailable', () => {
+test('mkv-to-readme-video builds every output with the scaled mpv crop', () => {
withTempDir((root) => {
const binDir = path.join(root, 'bin');
const inputPath = path.join(root, 'sample.mkv');
@@ -104,5 +104,9 @@ touch "$output"
const ffmpegLog = fs.readFileSync(ffmpegLogPath, 'utf8');
assert.match(ffmpegLog, /-c:v libwebp_anim/);
+ const scaledCropUses = ffmpegLog.match(
+ /-vf crop=1920\*iw\/3440:1080\*ih\/1440:760\*iw\/3440:205\*ih\/1440,scale=1920:1080:flags=lanczos/g,
+ );
+ assert.equal(scaledCropUses?.length, 4);
});
});