tag:github.com,2008:https://github.com/ack00gar/FunGen-AI-Powered-Funscript-Generator/releases Release notes from FunGen-AI-Powered-Funscript-Generator 2025-10-01T17:21:26Z tag:github.com,2008:Repository/901243922/renamer 2025-10-03T15:16:38Z VR renamer tool <h1>VR Video Format Detector &amp; Renamer</h1> <p>Automatic VR video format detection and renaming tool using simple machine learning.</p> <p><strong>Feel like saying thank you? Support me here:</strong> <a href="https://ko-fi.com/k00gar" rel="nofollow">https://ko-fi.com/k00gar</a></p> <h2>Features</h2> <ul> <li><strong>ML-based detection</strong>: Uses Random Forest classifier trained on quite some videos</li> <li><strong>Detects</strong>: Projection type (fisheye, 180°), layout (SBS/TB), alpha channel (including alpha-packed)</li> <li><strong>Fast</strong>: ~5 seconds per video (optimized FFmpeg extraction)</li> <li><strong>Batch processing</strong>: Process single files or entire directories recursively</li> <li><strong>Safe operation</strong>: Dry-run mode by default - preview changes before applying</li> <li><strong>Cross-platform</strong>: Works on Windows, macOS, Linux</li> </ul> <h2>Requirements</h2> <ul> <li>Python 3.7+</li> <li>ffmpeg/ffprobe (must be in PATH)</li> <li>Dependencies: <code>pip install scikit-learn numpy opencv-python</code></li> </ul> <h2>Quick Start</h2> <h3>Analyze a single video (dry-run):</h3> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="python3 vr_rename.py video.mp4"><pre>python3 vr_rename.py video.mp4</pre></div> <p>Output example:</p> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="============================================================ File: video.mp4 Resolution: 5760x2880 Video Type: VR Projection: fisheye Layout: sbs FOV: 190° Alpha: Yes Suggested name: video_FISHEYE_SBS_ALPHA.mp4"><pre class="notranslate"><code>============================================================ File: video.mp4 Resolution: 5760x2880 Video Type: VR Projection: fisheye Layout: sbs FOV: 190° Alpha: Yes Suggested name: video_FISHEYE_SBS_ALPHA.mp4 </code></pre></div> <h3>Rename a single video:</h3> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="python3 vr_rename.py video.mp4 --rename"><pre>python3 vr_rename.py video.mp4 --rename</pre></div> <h3>Process entire directory:</h3> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="python3 vr_rename.py /path/to/videos/"><pre>python3 vr_rename.py /path/to/videos/</pre></div> <h3>Recursively process all subdirectories:</h3> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="python3 vr_rename.py /path/to/videos/ --recursive --rename"><pre>python3 vr_rename.py /path/to/videos/ --recursive --rename</pre></div> <h2>Usage</h2> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="usage: vr_rename.py [-h] [-r] [--rename] [-v] [-m MODEL] path positional arguments: path Video file or directory path optional arguments: -h, --help show this help message and exit -r, --recursive Process directories recursively --rename Actually rename files (default is dry-run) -v, --verbose Verbose output -m MODEL, --model MODEL Path to model file (default: vr_detector_model_rf.pkl)"><pre class="notranslate"><code>usage: vr_rename.py [-h] [-r] [--rename] [-v] [-m MODEL] path positional arguments: path Video file or directory path optional arguments: -h, --help show this help message and exit -r, --recursive Process directories recursively --rename Actually rename files (default is dry-run) -v, --verbose Verbose output -m MODEL, --model MODEL Path to model file (default: vr_detector_model_rf.pkl) </code></pre></div> <h2>Supported Formats</h2> <ul> <li><strong>Projections</strong>: fisheye, hemisphere (180°)</li> <li><strong>Layouts</strong>: SBS (side-by-side), TB (top-bottom)</li> <li><strong>Alpha channel</strong>: Detects both native alpha and alpha-packed (fisheye only)</li> <li><strong>Video formats</strong>: MP4, MKV, AVI, MOV, WebM, M4V</li> </ul> <h2>Naming Convention</h2> <p>Generated filenames follow the pattern:</p> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{original_name}_{PROJECTION}_{LAYOUT}_{ALPHA}.{ext}"><pre class="notranslate"><code>{original_name}_{PROJECTION}_{LAYOUT}_{ALPHA}.{ext} </code></pre></div> <p>Examples:</p> <ul> <li><code>video_FISHEYE_SBS.mp4</code></li> <li><code>scene_180_TB.mkv</code></li> <li><code>movie_FISHEYE_SBS_ALPHA.mp4</code></li> </ul> <p>Existing VR format tags in filenames are automatically cleaned up before adding new tags.</p> <h2>Model Information</h2> <ul> <li><strong>Type</strong>: Random Forest Classifier</li> <li><strong>Training samples</strong>: 883 videos with manual validation</li> <li><strong>Features</strong>: Histogram correlation, edge detection, brightness analysis (20 features)</li> <li><strong>Performance</strong>: ~5 seconds per video (4K-8K)</li> </ul> <h2>Troubleshooting</h2> <p><strong>"Model file not found"</strong></p> <ul> <li>Ensure <code>vr_detector_model_rf.pkl</code> is in the same directory as the script</li> </ul> <p><strong>"ffprobe: command not found"</strong></p> <ul> <li>Install ffmpeg: <a href="https://ffmpeg.org/download.html" rel="nofollow">https://ffmpeg.org/download.html</a></li> <li>Ensure ffmpeg/ffprobe are in your system PATH</li> </ul> <p><strong>"Could not analyze video"</strong></p> <ul> <li>Video file may be corrupted or unsupported format</li> <li>Check file permissions</li> </ul> <h2>Safety Features</h2> <ul> <li><strong>Dry-run by default</strong>: Preview changes before applying</li> <li><strong>Error handling</strong>: Continues processing other files if one fails</li> <li><strong>Verbose logging</strong>: Track what's happening with <code>-v</code> flag</li> </ul> <h2>License</h2> <p>Free to use and modify.</p> ack00gar tag:github.com,2008:Repository/901243922/models-v1.1.0 2025-07-19T07:20:49Z models-v1.1.0 <p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/ack00gar/FunGen-AI-Powered-Funscript-Generator/pull/24">#24</a> from gavonmothma/patch-3</p> <p>Update README.md</p> ack00gar