Skip to content

Kazaa3/media-web-viewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

305 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Media Web Viewer (v1.3.3)

Kompakte Projektübersicht. Das vollständige Technical Manual liegt in DOCUMENTATION.md.

Quick Start

Debian/Ubuntu (.deb)

sudo dpkg -i media-web-viewer_1.3.3_amd64.deb
sudo apt-get install -f
media-web-viewer

From Source

git 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

Core Stack

  • 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

Startup Modes

Normal Mode (Full Backend)

python main.py
# → Starts Eel/WebSocket server, opens browser automatically

Headless Mode (No GUI)

python main.py --ng
# → Initializes DB, shows stats, exits (for scripts/CI)

Connectionless Mode (Frontend Only)

python main.py --n
# → Opens UI in browser without backend (for UI development)

Playback Fallback Behavior

  • 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 System

Quick Build

# 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

Development

# 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

Release Verification

# 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

Version Update (Automated)

# 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.py

CI/CD Pipelines

Main Branch Artifacts (no GitHub Release)

On every push to main, the workflow ci-artifacts.yml builds and uploads:

  • Linux executable (dist/MediaWebViewer)
  • Debian package (media-web-viewer_*_amd64.deb)

Tagged Release (auto-publish to GitHub Releases)

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

Release Checklist (recommended)

# 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 --tags

Local Build Artifact Cleanup

Use 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

Docs

Developed by kazaa3.

About

Desktop-Webapp with eel

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors