Skip to content

julioGN/musicweb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MusicWeb - Professional Music Library Management Suite

MusicWeb Logo

Python 3.8+ License: MIT Code style: black CI/CD codecov PyPI version Docker

Production-ready music library management and comparison platform

πŸš€ Live Demo | πŸ“– Documentation | 🐳 Docker Hub | πŸ’¬ Discord

✨ Features

πŸ” Library Comparison

  • Compare music libraries across Spotify, Apple Music, and YouTube Music
  • Advanced fuzzy matching algorithms with configurable strictness
  • ISRC-based exact matching for precision
  • Duration and album-based validation

πŸ“Š Analytics & Insights

  • Detailed library statistics and overlap analysis
  • Artist and genre distribution charts
  • Missing tracks identification and analysis
  • Duplicate detection and cleanup recommendations

🎡 Playlist Management

  • Create YouTube Music playlists from missing tracks
  • Automated search and matching with fallback options
  • Batch playlist operations with progress tracking
  • Export results in multiple formats (CSV, JSON)

🧹 Library Cleanup

  • Remove duplicates with smart detection
  • Clean up metadata inconsistencies
  • Merge similar artists and albums
  • Validate library integrity

🌐 Multi-Platform Support

  • Spotify: CSV exports and JSON data
  • Apple Music: CSV exports and iTunes XML libraries
  • YouTube Music: JSON exports and API integration
  • Extensible: Easy to add new platforms

πŸš€ Quick Start

⚑ One-Click Deploy

Deploy to Streamlit Cloud

πŸ“¦ Installation Options

Option 1: PyPI (Recommended)

pip install musicweb
musicweb-web  # Start web interface

Option 2: Docker (Production)

docker run -p 8501:8501 musicweb/musicweb:latest

Option 3: From Source (Development)

git clone https://github.com/your-username/musicweb.git
cd musicweb
make install-dev  # or pip install -e ".[dev]"
make serve        # or streamlit run src/musicweb/web/app.py

🌐 Web Interface

  1. Upload your music library files (Spotify CSV, Apple Music CSV, or YouTube Music JSON)
  2. Choose comparison options (fuzzy matching, ISRC matching, etc.)
  3. View detailed results with interactive charts and tables
  4. Export or create playlists from missing tracks

πŸ’» Command Line Interface

# Compare libraries
musicweb compare spotify.csv apple.csv --output results.json

# Create YouTube Music playlist from missing tracks
musicweb playlist create --missing results.json --name "Spotify Missing"

# Analyze library statistics  
musicweb analyze spotify.csv --charts

# Clean duplicates
musicweb clean spotify.csv --remove-duplicates

πŸ“– Documentation

πŸ—οΈ Architecture

MusicWeb follows a modular, production-ready architecture:

musicweb/
β”œβ”€β”€ 🎯 src/musicweb/           # Core application
β”‚   β”œβ”€β”€ 🧠 core/              # Business logic & algorithms
β”‚   β”œβ”€β”€ πŸ”Œ platforms/         # Platform-specific parsers
β”‚   β”œβ”€β”€ 🀝 integrations/      # External API integrations
β”‚   β”œβ”€β”€ 🌐 web/               # Streamlit web interface
β”‚   β”œβ”€β”€ πŸ’» cli/               # Command line interface
β”‚   └── πŸ› οΈ utils/             # Shared utilities & helpers
β”œβ”€β”€ πŸ§ͺ tests/                 # Comprehensive test suite
β”‚   β”œβ”€β”€ unit/                # Unit tests
β”‚   β”œβ”€β”€ integration/         # Integration tests
β”‚   └── fixtures/            # Test data
β”œβ”€β”€ πŸ“š docs/                  # Documentation
β”œβ”€β”€ 🐳 config/                # Configuration files
β”œβ”€β”€ βš™οΈ scripts/               # Utility & deployment scripts
└── πŸš€ .github/workflows/     # CI/CD pipelines

Key Components

  • πŸ” LibraryComparator: Advanced music matching algorithms
  • πŸ“Š Analytics Engine: Statistical analysis and insights
  • 🎡 Platform Parsers: Support for Spotify, Apple Music, YouTube Music
  • 🌐 Web Interface: User-friendly Streamlit dashboard
  • πŸ“ˆ Monitoring: Built-in metrics and health checks
  • πŸ”’ Security: Professional security scanning and best practices

πŸ§ͺ Testing & Quality

# Quick testing
make test              # Run all tests
make test-cov          # Run with coverage report
make test-watch        # Watch mode for development

# Quality assurance  
make check             # Run all quality checks
make lint              # Code linting
make format            # Code formatting
make security          # Security scanning

# Specific test categories
pytest tests/unit/                    # Unit tests
pytest tests/integration/             # Integration tests  
pytest -m slow                       # Performance tests
pytest -m "not slow"                 # Fast tests only

Test Coverage: 95%+ | Code Quality: A+ | Security: Scanned

🐳 Deployment Options

🌩️ Cloud Deployment (1-Click)

Platform Deploy Status
Streamlit Cloud Deploy βœ… Free
Heroku Deploy βœ… Free tier
Railway Deploy on Railway βœ… Free tier

πŸ‹ Docker (Recommended for Production)

# Simple deployment
docker run -p 8501:8501 musicweb/musicweb:latest

# Production deployment with monitoring
docker-compose --profile monitoring up -d

# Kubernetes deployment  
kubectl apply -f k8s/

πŸ“¦ Package Installation

# Production installation
pip install musicweb

# Development installation
git clone https://github.com/your-username/musicweb.git
cd musicweb && make install-dev

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

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

πŸ™ Acknowledgments

πŸ“ž Support


Made with ❀️ by the MusicWeb Team

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages