Replace fancy dashes and quotes with plain ASCII
This commit is contained in:
34
README.md
34
README.md
@@ -25,7 +25,7 @@ A desktop application for organizing, watching, and tracking progress through vi
|
|||||||
|
|
||||||
TutorialVault turns any folder of video files into a structured course with automatic progress tracking, subtitle support, per-video notes, and detailed media information. Point it at a folder, and it handles the rest.
|
TutorialVault turns any folder of video files into a structured course with automatic progress tracking, subtitle support, per-video notes, and detailed media information. Point it at a folder, and it handles the rest.
|
||||||
|
|
||||||
It was built for people who collect tutorial courses and want a better way to work through them than a file explorer and a media player. Your progress, your notes, your preferences — all saved automatically, all portable, all yours.
|
It was built for people who collect tutorial courses and want a better way to work through them than a file explorer and a media player. Your progress, your notes, your preferences - all saved automatically, all portable, all yours.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -71,9 +71,9 @@ It was built for people who collect tutorial courses and want a better way to wo
|
|||||||
|
|
||||||
**📈 High-water mark tracking.** TutorialVault remembers the furthest point you've reached in each video, independent of where you happen to be scrubbing to.
|
**📈 High-water mark tracking.** TutorialVault remembers the furthest point you've reached in each video, independent of where you happen to be scrubbing to.
|
||||||
|
|
||||||
**✅ Automatic completion detection.** When you watch to within 2 seconds of the end, a video is marked as done. Once done, it stays done — no accidental un-finishing.
|
**✅ Automatic completion detection.** When you watch to within 2 seconds of the end, a video is marked as done. Once done, it stays done - no accidental un-finishing.
|
||||||
|
|
||||||
**📉 Overall progress.** A progress bar shows your completion percentage for the entire folder, calculated from actual watched time relative to total duration. Not just "videos finished out of total" — actual time-weighted progress.
|
**📉 Overall progress.** A progress bar shows your completion percentage for the entire folder, calculated from actual watched time relative to total duration. Not just "videos finished out of total" - actual time-weighted progress.
|
||||||
|
|
||||||
**⏪ Resume from where you left off.** Clicking any video in the playlist, or navigating with previous/next, resumes from your last position. Finished videos start from the beginning.
|
**⏪ Resume from where you left off.** Clicking any video in the playlist, or navigating with previous/next, resumes from your last position. Finished videos start from the beginning.
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ It was built for people who collect tutorial courses and want a better way to wo
|
|||||||
|
|
||||||
**🔀 Drag and drop reorder.** Rearrange the playlist by dragging items. A blue indicator line shows exactly where an item will land. Your custom order is saved and persists between sessions.
|
**🔀 Drag and drop reorder.** Rearrange the playlist by dragging items. A blue indicator line shows exactly where an item will land. Your custom order is saved and persists between sessions.
|
||||||
|
|
||||||
**🔢 Smart ordering.** Natural sort by default — "Lesson 2" comes before "Lesson 10." When you reopen a folder that has new files, existing items keep their saved order and new files appear at the end.
|
**🔢 Smart ordering.** Natural sort by default - "Lesson 2" comes before "Lesson 10." When you reopen a folder that has new files, existing items keep their saved order and new files appear at the end.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -97,11 +97,11 @@ It was built for people who collect tutorial courses and want a better way to wo
|
|||||||
|
|
||||||
**🔍 Automatic subtitle discovery.** TutorialVault finds subtitles in three ways, in this priority order:
|
**🔍 Automatic subtitle discovery.** TutorialVault finds subtitles in three ways, in this priority order:
|
||||||
|
|
||||||
1. **Previously loaded subtitle** — if you've loaded a subtitle for a video before, it's remembered and reloaded automatically.
|
1. **Previously loaded subtitle** - if you've loaded a subtitle for a video before, it's remembered and reloaded automatically.
|
||||||
2. **Sidecar files** — `.srt` or `.vtt` files sitting next to the video with a matching filename (including language variants like `video.en.srt` or `video.french.srt`).
|
2. **Sidecar files** - `.srt` or `.vtt` files sitting next to the video with a matching filename (including language variants like `video.en.srt` or `video.french.srt`).
|
||||||
3. **Embedded tracks** — subtitle tracks inside the video container itself (common in MKV files), extracted on demand using ffmpeg.
|
3. **Embedded tracks** - subtitle tracks inside the video container itself (common in MKV files), extracted on demand using ffmpeg.
|
||||||
|
|
||||||
**📋 Subtitle menu.** A CC button opens a menu listing all available subtitles — external files, embedded tracks, a "load from file" option for picking any subtitle file on your system, and a disable option.
|
**📋 Subtitle menu.** A CC button opens a menu listing all available subtitles - external files, embedded tracks, a "load from file" option for picking any subtitle file on your system, and a disable option.
|
||||||
|
|
||||||
**🌍 Language detection.** Sidecar subtitles with language suffixes are automatically labeled (English, French, German, Spanish, Italian, Portuguese, Russian, Japanese, Korean, Chinese, Arabic, Hindi, Dutch, Swedish, Polish). English subtitles are sorted first.
|
**🌍 Language detection.** Sidecar subtitles with language suffixes are automatically labeled (English, French, German, Spanish, Italian, Portuguese, Russian, Japanese, Korean, Chinese, Arabic, Hindi, Dutch, Swedish, Polish). English subtitles are sorted first.
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ It was built for people who collect tutorial courses and want a better way to wo
|
|||||||
|
|
||||||
### 📝 Notes
|
### 📝 Notes
|
||||||
|
|
||||||
**Per-video notes.** A text area in the dock panel lets you write notes for each video. Timestamps, reminders, key takeaways, questions — whatever you need. Notes auto-save as you type.
|
**Per-video notes.** A text area in the dock panel lets you write notes for each video. Timestamps, reminders, key takeaways, questions - whatever you need. Notes auto-save as you type.
|
||||||
|
|
||||||
**👁️ Visible in the playlist.** Videos with notes show a small indicator in the playlist, so you can quickly spot which videos you've annotated.
|
**👁️ Visible in the playlist.** Videos with notes show a small indicator in the playlist, so you can quickly spot which videos you've annotated.
|
||||||
|
|
||||||
@@ -123,13 +123,13 @@ It was built for people who collect tutorial courses and want a better way to wo
|
|||||||
|
|
||||||
**Detailed metadata panel.** The info panel shows everything about the current video and folder:
|
**Detailed metadata panel.** The info panel shows everything about the current video and folder:
|
||||||
|
|
||||||
- 📁 **Folder info** — path, structure (flat or subfolder), next unfinished video.
|
- 📁 **Folder info** - path, structure (flat or subfolder), next unfinished video.
|
||||||
- 🎬 **Video info** — codec, resolution, frame rate, pixel format, bitrate.
|
- 🎬 **Video info** - codec, resolution, frame rate, pixel format, bitrate.
|
||||||
- 🔈 **Audio info** — codec, channels, sample rate, bitrate.
|
- 🔈 **Audio info** - codec, channels, sample rate, bitrate.
|
||||||
- 💬 **Subtitle info** — count and details of embedded tracks, or external file status.
|
- 💬 **Subtitle info** - count and details of embedded tracks, or external file status.
|
||||||
- 📄 **File info** — extension, file size, modification date, containing folder.
|
- 📄 **File info** - extension, file size, modification date, containing folder.
|
||||||
- ⏳ **Progress stats** — finished count, remaining count, estimated time remaining.
|
- ⏳ **Progress stats** - finished count, remaining count, estimated time remaining.
|
||||||
- 📊 **Per-subfolder breakdown** — completion counts for each top-level subdirectory.
|
- 📊 **Per-subfolder breakdown** - completion counts for each top-level subdirectory.
|
||||||
|
|
||||||
All of this requires ffprobe, which TutorialVault will automatically download if it's not already available on your system.
|
All of this requires ffprobe, which TutorialVault will automatically download if it's not already available on your system.
|
||||||
|
|
||||||
@@ -155,7 +155,7 @@ All of this requires ffprobe, which TutorialVault will automatically download if
|
|||||||
|
|
||||||
### 🧳 Portability
|
### 🧳 Portability
|
||||||
|
|
||||||
**Fully portable.** Everything — preferences, library state, subtitles, ffmpeg binaries, even the WebView2 profile — lives in a `state/` directory next to the executable. Copy the folder to a USB drive and it works anywhere. No registry entries, no AppData folders, no hidden configuration in your home directory.
|
**Fully portable.** Everything - preferences, library state, subtitles, ffmpeg binaries, even the WebView2 profile - lives in a `state/` directory next to the executable. Copy the folder to a USB drive and it works anywhere. No registry entries, no AppData folders, no hidden configuration in your home directory.
|
||||||
|
|
||||||
**🛟 Crash-safe storage.** All state files are written atomically with backup rotation. If something goes wrong mid-write, the app falls back to the most recent valid backup. Nobody should lose their progress to a power outage.
|
**🛟 Crash-safe storage.** All state files are written atomically with backup rotation. If something goes wrong mid-write, the app falls back to the most recent valid backup. Nobody should lose their progress to a power outage.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user