Skip to content

GuillainM/FLAC_Detective

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

148 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

🎡 FLAC Detective

FLAC Detective Banner

Python Version PyPI version PyPI Downloads License Status codecov Code style: black Pre-commit

Advanced FLAC Authenticity Analyzer for Detecting MP3-to-FLAC Transcodes

FLAC Detective is a professional-grade command-line tool that analyzes FLAC audio files to detect MP3-to-FLAC transcodes with high precision. Using advanced spectral analysis and an 11-rule scoring system, it helps you maintain an authentic lossless music collection.


✨ Key Features

  • 🎯 High Precision Detection: 11-rule scoring system with intelligent protection mechanisms
  • πŸ“Š 4-Level Verdict System: Clear confidence ratings from AUTHENTIC to FAKE_CERTAIN
  • ⚑ Performance Optimized: 80% faster than baseline through smart caching and parallel processing
  • πŸ” Advanced Analysis: Spectral analysis, compression artifact detection, and multi-segment validation
  • πŸ›‘οΈ Protection Layers: Prevents false positives for vinyl rips, cassette transfers, and high-quality MP3s
  • πŸ“ Flexible Output: Console reports with Rich formatting, JSON export, and detailed logging
  • πŸ”§ Robust Error Handling: Automatic retries, partial file reading, and comprehensive diagnostic tracking
  • πŸ”¨ Automatic Repair: Corrupted FLAC files are automatically repaired with full metadata preservation

πŸš€ Quick Start

Installation

# Install via pip (Recommended)
pip install flac-detective

# OR run with Docker
docker pull ghcr.io/guillainm/flac-detective:latest

πŸ“¦ See Getting Started for complete installation instructions.

Basic Usage

# Analyze current directory
flac-detective .

# Analyze specific directory
flac-detective /path/to/music

πŸ“– See User Guide for detailed usage examples and command line options.

Try it Now (No Installation Required)

Option 1: Docker with Sample File

# Download a sample FLAC file (public domain)
curl -O https://archive.org/download/test_flac/sample.flac

# Run analysis with Docker (mount current directory)
docker run --rm -v "$(pwd)":/data ghcr.io/guillainm/flac-detective:latest /data/sample.flac

Option 2: Quick Python Test

# Using Python (if you have pip installed)
pip install flac-detective
flac-detective --version
flac-detective --help

Option 3: Interactive Demo Script ⭐ (Best for Quick Test)

# Clone and run demo with synthetic test files
git clone https://github.com/GuillainM/FLAC_Detective.git
cd FLAC_Detective
pip install -e .
python examples/quick_test.py

This creates test files and shows FLAC Detective in action in 30 seconds!

Option 4: GitHub Codespaces (Fully Interactive Online)

  1. Click the "Code" button β†’ "Codespaces" β†’ "Create codespace"
  2. Wait for environment setup (~30 seconds)
  3. Run: pip install -e . && python examples/quick_test.py

No sample files? The tool works with any FLAC file from your music collection!


🎬 Demo

Live Demo

FLAC Detective in Action

Watch FLAC Detective analyze files with real-time progress bars and colored output!

Example Output

======================================================================
  FLAC AUTHENTICITY ANALYZER
  Detection of MP3s transcoded to FLAC
======================================================================

β ‹ Analyzing audio files... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  15% 0:02:34

======================================================================
  ANALYSIS COMPLETE
======================================================================
  FLAC files analyzed: 245
  Authentic files: 215 (87.8%)
  Fake/Suspicious files: 12 (4.9%)
  Text report: flac_report_20251220_143022.txt
======================================================================

⚑ Performance

FLAC Detective is optimized for both speed and accuracy:

  • Speed: 2-5 seconds per file (30s sample, default)
  • Throughput: 700-1,800 files/hour on modern hardware
  • Memory: ~150-300 MB peak usage
  • Optimization: 80% faster than baseline through intelligent caching and parallel processing
  • Scalability: Handles libraries with 10,000+ files efficiently

Customizable Performance:

# Faster analysis (15s per file) - good for quick scans
flac-detective /music --sample-duration 15

# Balanced (30s per file) - default, recommended
flac-detective /music

# More thorough (60s per file) - maximum accuracy
flac-detective /music --sample-duration 60

❓ Frequently Asked Questions

Does it work on Windows/Mac/Linux?

Yes! FLAC Detective is cross-platform and works on:

  • βœ… Windows (7, 10, 11)
  • βœ… macOS (10.14+)
  • βœ… Linux (all major distributions)

How accurate is the detection?

FLAC Detective uses an 11-rule scoring system with protection layers:

  • High confidence: >95% accuracy for AUTHENTIC and FAKE_CERTAIN verdicts
  • Protection mechanisms: Prevents false positives for vinyl rips, cassette transfers, and high-quality sources
  • 4-level system: AUTHENTIC, WARNING, SUSPICIOUS, FAKE_CERTAIN for nuanced results

Will it damage or modify my files?

No! FLAC Detective is read-only by default:

  • βœ… Only analyzes files, never modifies them
  • βœ… Safe for your entire music collection
  • βœ… Optional --repair flag for corrupted files (preserves all metadata)

Can I trust the results?

Yes, but use common sense:

  • βœ… AUTHENTIC (score ≀30): Very high confidence, keep the file
  • ⚑ WARNING (31-60): Borderline case, manual verification recommended
  • ⚠️ SUSPICIOUS (61-85): High confidence transcode, consider replacing
  • ❌ FAKE_CERTAIN (β‰₯86): Multiple indicators, definitely a transcode

For critical decisions, use complementary tools (e.g., Spek for visual spectral analysis) to confirm.

What file formats are supported?

Currently:

  • βœ… FLAC files (.flac)
  • πŸ”œ Future: WAV, ALAC, APE (planned for v1.0)

How long does analysis take?

  • Single file: 2-5 seconds (30s sample)
  • 100 files: ~5-10 minutes
  • 1,000 files: ~50-90 minutes
  • 10,000 files: ~8-15 hours

Use --sample-duration 15 for faster scans of large libraries.

Can I use it in my own application?

Yes! FLAC Detective provides a Python API:

from flac_detective import FLACAnalyzer

analyzer = FLACAnalyzer()
result = analyzer.analyze_file("song.flac")
print(result['verdict'])  # AUTHENTIC, WARNING, SUSPICIOUS, or FAKE_CERTAIN

See examples/ directory for integration examples.

Is it free and open source?

Yes! MIT License:

  • βœ… Free for personal and commercial use
  • βœ… Open source on GitHub
  • βœ… Contributions welcome

How can I contribute?

See CONTRIBUTING.md for:

  • Bug reports and feature requests
  • Code contributions
  • Documentation improvements
  • Testing and feedback

πŸ“š Documentation

Detailed documentation is available in the docs/ directory:


🎯 Use Cases

  • Library Maintenance: Clean your music collection of fake lossless files
  • Quality Verification: Validate FLAC authenticity before archiving
  • Batch Processing: Analyze large music libraries efficiently
  • Format Validation: Ensure genuine lossless quality for critical listening

πŸ’‘ Quick Examples

See the examples/ directory for ready-to-run scripts:


🀝 Contributing

Contributions are welcome! Please read our CONTRIBUTING.md for detailed guidelines and CODE_OF_CONDUCT.md for community standards.


πŸ”’ Security

For security policy and vulnerability reporting, please see SECURITY.md.


πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ“ž Support


FLAC Detective - Maintaining authentic lossless audio collections

About

Advanced FLAC Authenticity Analyzer & Repair Tool. Detects Fake FLACs (transcoded MP3s) using spectral analysis and automatically fixes metadata/duration issues.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages