Kompakte Projektübersicht. Das vollständige Technical Manual liegt in DOCUMENTATION.md.
sudo dpkg -i media-web-viewer_1.3.3_amd64.deb
sudo apt-get install -f
media-web-viewergit clone https://github.com/Kazaa3/media-web-viewer.git
cd media-web-viewer
mamba env create -f environment.yml
mamba activate media-web-viewer
python main.py- Backend: Python 3.11+, Bottle, Eel
- Frontend: HTML5/CSS3, Vanilla JavaScript
- Database: SQLite (
media_library.db) - Media Tooling: Mutagen, pymediainfo, FFmpeg
- VLC Support: m3u8 (playlist import/export), python-vlc
python main.py
# → Starts Eel/WebSocket server, opens browser automaticallypython main.py --ng
# → Initializes DB, shows stats, exits (for scripts/CI)python main.py --n
# → Opens UI in browser without backend (for UI development)- Browser playback errors like
NotSupportedError(unsupported codec/source) are handled gracefully. - The UI now shows a readable status message instead of a noisy global promise popup.
- Recommended fallback: switch to VLC mode for unsupported media sources.
# Build Debian package
python build_system.py --build deb
# Build standalone executable
python build_system.py --build pyinstaller
# Full build with tests
python build_system.py --full-build# Run tests
python build_system.py --test
# Code quality checks
python build_system.py --lint --type-check
# Clean build artifacts
python build_system.py --clean-all# Full release pipeline (sync + build + reinstall validation)
python build_system.py --pipeline
# Optional: include destructive reinstall validation
python build_system.py --pipeline --destructive
# Manual checks (if needed)
python tests/test_version_sync.py
python tests/test_reinstall_deb.py
RUN_DESTRUCTIVE_TESTS=1 python tests/test_reinstall_deb.py# 1) Update VERSION + all configured sync locations
python update_version.py --new-version 1.3.5
# 2) Verify sync is fully consistent
python tests/test_version_sync.pyOn every push to main, the workflow ci-artifacts.yml builds and uploads:
- Linux executable (
dist/MediaWebViewer) - Debian package (
media-web-viewer_*_amd64.deb)
When you push a tag like v1.3.3, the workflow release.yml:
- builds Linux executable + Debian package + Windows
.exe - creates/updates the GitHub Release
- uploads all binaries as release assets
git tag -a v1.3.3 -m "Release v1.3.3"
git push origin main --tags# 1) Update project version
python update_version.py --new-version 1.3.5
# 2) Verify version consistency
python tests/test_version_sync.py
# 3) Run release validation pipeline
python build_system.py --pipeline
# 4) Commit release-related changes
git add VERSION VERSION_SYNC.json update_version.py
git add main.py README.md DOCUMENTATION.md
git add .github/workflows/release.yml .github/workflows/ci-artifacts.yml
git commit -m "Release v1.3.5"
# 5) Create and push release tag
git tag -a v1.3.5 -m "Release v1.3.5"
git push origin main --tagsUse the cleanup helper to keep only recent artifacts locally:
# Preview
scripts/cleanup_build_artifacts.sh
# Execute cleanup (default: keep 5 deb, 2 dist binaries)
scripts/cleanup_build_artifacts.sh --execute- Technical Manual: DOCUMENTATION.md
- Dependencies & licenses: DEPENDENCIES.md
- License: LICENSE.md
Developed by kazaa3.