Skip to main content

Terminal-based movie and TV show streaming

Project description

📑 Navigation

InstallationFeaturesHow to UseKeyboard ShortcutsConfigurationCreditsLicense


Terminal-based movie and TV show streaming with Arabic/English subtitles





📦 Installation

Requirements

Before installing, make sure you have:

  • Python 3.8 or newer (Python 3.12 recommended)
  • MPV media player (for streaming)
  • ffmpeg (for video processing)
  • fzf (for fuzzing results, optional)
  • yt-dlp (for video processing)
  • aria2 (for video downloading)
  • beautfullsoup (for web scraping)

⚠️ Important Note: If you are using macOS, build from source.

Method 1: Install via pip (Recommended)

The easiest way to get started:

pip install mov-watch

Launch the app:

mov-watch
# or use the shorter command
mw

To update to the latest version:

pip install --upgrade mov-watch

Method 2: Arch Linux (AUR)

yay -S mov-watch

Method 3: From Source

Want to run the development version?

On Windows:

# Install MPV first (if not already installed or bundled by mov-watch)
# scoop install mpv

# Clone the repo and install dependencies
git clone https://github.com/leoallday/mov-watch.git
cd mov-watch
pip install -r requirements.txt
python main.py

On Linux (Debian/Ubuntu):

# Get the dependencies (mov-watch will attempt to auto-install these)
# sudo apt update && sudo apt install mpv git python3-pip ffmpeg fzf

# Clone and run
git clone https://github.com/leoallday/mov-watch.git
cd mov-watch
pip install -r requirements.txt
python3 main.py

On macOS:

# Get the dependencies (mov-watch will guide you to install these via Homebrew)
# brew install mpv ffmpeg fzf

# Clone and run
git clone https://github.com/leoallday/mov-watch.git
cd mov-watch
pip install -r requirements.txt
python3 main.py

🎯 What Can You Do?

Here's everything this tool offers:

Streaming & Playback

  • Multiple Quality Options: Watch in 1080p, 720p, or 480p depending on your internet speed
  • Subtitle Support: Automatically fetches and prioritizes Arabic and English subtitles, making both available for selection in your media player.
  • Resume from History: Pick up exactly where you left off (buggy - acknowledged)

Personal Library

  • Favorites System: Bookmark your favorite movies and TV shows for quick access
  • Episode Tracking: The app remembers which episode you're on

Interface & Experience

  • Rich TUI (Terminal User Interface): Beautiful terminal interface built with Rich library

  • Color Themes: Choose from various color themes.

  • Discord Rich Presence: Show off what you're watching on Discord with media posters

  • Smooth Navigation: Intuitive keyboard controls

Technical Features

  • Zero Ads: Clean streaming experience
  • Automatic Updates: Built-in version checker notifies you of new releases, and yes this can be turned off.
  • MPV/VLC Support: Choose your preferred media player
  • Dependency Auto-installer: Automatically checks and installs missing dependencies.
  • Cross-platform: Works on Windows, Linux, and macOS

🎮 How to Use

  1. Launch the app: Run mov-watch or mw
  2. Browse or Search: Use the main menu to search, view trending, or browse genres
  3. Select Media: Navigate with arrow keys and press Enter
  4. Pick an Episode/Movie: Choose which episode or movie to watch
  5. Enjoy: MPV/VLC will launch and start streaming

You can also use interactive mode for quick searches:

mw -i "The Matrix"

⌨️ Keyboard Shortcuts

Key What it Does
↑ / ↓ Navigate through lists
Enter Select/Confirm choice
G Jump directly to an episode number
B Go back to previous screen
Q / Esc Quit the application
Space Pause/Resume video (in player)
← / → Rewind/Forward 5 seconds
F Toggle fullscreen

⚙️ Configuration

Settings are stored locally in ~/.mov-watch/database/config.json

Available Settings

Access the settings menu from the main screen to customize:

  • Default Quality: Set your preferred quality (1080p, 720p, or 480p)
  • Player: Choose between MPV or VLC
  • Auto-next Episode: Toggle automatic episode continuation
  • Discord Rich Presence: Show or hide Discord activity
  • Theme Color: Pick from various color schemes.
  • Analytics: Opt-in/out of anonymous usage stats - this is auto enabled by default.
  • Update Checking: Toggle automatic update notifications

You can also manually edit the config file if you prefer.


🙏 Credits

mov-watch is created and maintained by:


📄 License

This project is licensed under the GNU General Public License v3.0.

You're free to use, modify, and distribute this software under the terms of the GNU General Public License v3.0. See the LICENSE file for the full legal text.

In simple terms:

  • ✅ Use it for personal or commercial purposes
  • ✅ Modify the source code
  • ✅ Distribute it to others
  • ✅ Sub-license it
  • ⚠️ Provide attribution
  • ⚠️ Include the original copyright notice and license text

⚠️ Important Notice

[! CAUTION] By using this software you understand:

  • Anonymous usage statistics are collected for the GitHub page stats banner (can be disabled in settings) - (Note: mov-watch analytics are explicitly mentioned as opt-in/out, but the banner part is from ani-cli-arabic, needs clarification if mov-watch uses it.)
  • The project is licensed under GNU General Public License v3.0 - see LICENSE for details
  • We do not host any content; all streams are from third-party sources
  • This tool is for personal use and educational purposes only


Made with ❤️ by leoallday

⭐ Star this repo | 🐛 Report bugs | 💬 Discussions

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mov_watch-1.2.2.tar.gz (56.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mov_watch-1.2.2-py3-none-any.whl (58.5 kB view details)

Uploaded Python 3

File details

Details for the file mov_watch-1.2.2.tar.gz.

File metadata

  • Download URL: mov_watch-1.2.2.tar.gz
  • Upload date:
  • Size: 56.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mov_watch-1.2.2.tar.gz
Algorithm Hash digest
SHA256 7864037262b7ce01457004a68e54fad43c60a98b9f285f067fe2030a52b4fdb5
MD5 05786d6611c659df9f2a41162ff399f3
BLAKE2b-256 7febc13e3b942b0facac17e17605d1bb4a551f132de7bb67449b7a44014be26c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mov_watch-1.2.2.tar.gz:

Publisher: publish-pypi.yml on leoallday/mov-watch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mov_watch-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: mov_watch-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 58.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mov_watch-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2489c48b257f3b4ec3b3a4b3c73f4d94e1a6c1a79f6b95e6cb5f6201794979c6
MD5 a3b15b8ef37d4dc371a82bdbdccdae1a
BLAKE2b-256 775c2af0d42fa848c8840cec253e0f4e034ae7b30009a5e1c024fa1cb4da02f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mov_watch-1.2.2-py3-none-any.whl:

Publisher: publish-pypi.yml on leoallday/mov-watch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page