Terminal-based movie and TV show streaming
Project description
📑 Navigation
Installation • Features • How to Use • Keyboard Shortcuts • Configuration • Credits • License
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)
- pycryptodome (for link decoding)
⚠️ 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: (not tested)
# 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
- Launch the app: Run
mov-watchormw - Browse or Search: Use the main menu to search, view trending, or browse genres
- Select Media: Navigate with arrow keys and press Enter
- Pick an Episode/Movie: Choose which episode or movie to watch
- 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:
- leoallday
📄 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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mov_watch-2.1.2.tar.gz.
File metadata
- Download URL: mov_watch-2.1.2.tar.gz
- Upload date:
- Size: 54.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
517d78ef3d20ad30e93ff8d973f94a10a159d73441faaa12c6e1350aec2a5d1a
|
|
| MD5 |
ae3f9bf4431f894712b6bec851e6a137
|
|
| BLAKE2b-256 |
7c538ea0080b49f37ae26884867246e32a51f7dfe891ff10e83c1e1ffddff334
|
Provenance
The following attestation bundles were made for mov_watch-2.1.2.tar.gz:
Publisher:
publish-pypi.yml on leoallday/mov-watch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mov_watch-2.1.2.tar.gz -
Subject digest:
517d78ef3d20ad30e93ff8d973f94a10a159d73441faaa12c6e1350aec2a5d1a - Sigstore transparency entry: 1569058212
- Sigstore integration time:
-
Permalink:
leoallday/mov-watch@a1b159aedbe6d362bd8117766bb8056dd6d70d3e -
Branch / Tag:
refs/tags/v2.1.2 - Owner: https://github.com/leoallday
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@a1b159aedbe6d362bd8117766bb8056dd6d70d3e -
Trigger Event:
release
-
Statement type:
File details
Details for the file mov_watch-2.1.2-py3-none-any.whl.
File metadata
- Download URL: mov_watch-2.1.2-py3-none-any.whl
- Upload date:
- Size: 57.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6dbb0d343ab57acd2087e0a3676c5fd490134e849d7348c1213be3ed181703e4
|
|
| MD5 |
1b387c19afe5eacafb223b553e4bc164
|
|
| BLAKE2b-256 |
06a21301d512e4396dac43702d05ef77861589d25a0ada88d58bd92f3a86e0b4
|
Provenance
The following attestation bundles were made for mov_watch-2.1.2-py3-none-any.whl:
Publisher:
publish-pypi.yml on leoallday/mov-watch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mov_watch-2.1.2-py3-none-any.whl -
Subject digest:
6dbb0d343ab57acd2087e0a3676c5fd490134e849d7348c1213be3ed181703e4 - Sigstore transparency entry: 1569058310
- Sigstore integration time:
-
Permalink:
leoallday/mov-watch@a1b159aedbe6d362bd8117766bb8056dd6d70d3e -
Branch / Tag:
refs/tags/v2.1.2 - Owner: https://github.com/leoallday
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@a1b159aedbe6d362bd8117766bb8056dd6d70d3e -
Trigger Event:
release
-
Statement type: