Skip to content

FlashZ/vix_season_ripper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

ViX Season Ripper – v1.1

Robust ViX season downloader with automatic scrolling, MPD capture, resume support and VTT→SRT conversion.


⚙️ Features

  • Auto‑scrolls & clicks through "Episodios …" ranges to harvest all episodes
  • Grabs the first .mpd URL from Chrome perf‑logs
  • Uses N_m3u8DL‑RE to download highest‑bit‑rate video & selected audio tracks
  • Multi‑language support – download multiple audio and subtitle tracks in one pass
  • Converts WebVTT subtitles to SRT (.{lang}.srt) for every requested language
  • Resume support – skips already‑downloaded episodes on re‑run
  • Generates titles.csv and failures.log

🚀 Requirements

  • Python 3.8+
  • Chrome ≥115 + matching Chromedriver
  • N_m3u8DL‑RE in $PATH

📥 Installation

git clone https://github.com/FlashZ/vix-season-ripper.git cd vix-season-ripper pip install selenium rich tqdm unidecode

Note: ensure N_m3u8DL-RE & ffmpeg are installed and in PATH


🛠️ Usage

python vix_downloader.py \
  "https://vix.com/es-es/detail/series-XXXX" \
  --season 1 \
  --aud-lang es,en \
  --sub-lang es,en \
  --out /path/to/downloads \
  [--headless] [--debug]
Flag Description Default
url Base series URL (required)
--season Season number 1
--aud-lang Audio language(s), comma‑separated es
--sub-lang Subtitle language(s), comma‑separated es
--lang (Deprecated) Sets both audio & subtitle to a single language. Overridden by --aud-lang / --sub-lang.
--out Output directory cwd
--headless Run Chrome headless off
--debug Enable DEBUG logging off

Examples

Download Spanish audio + English & Spanish subtitles:

python vix_downloader.py "https://vix.com/…" --aud-lang es --sub-lang es,en

Download both English and Spanish audio tracks with Spanish subs:

python vix_downloader.py "https://vix.com/…" --aud-lang es,en --sub-lang es

Legacy single‑language shorthand (still works):

python vix_downloader.py "https://vix.com/…" --lang es

📝 Configuration

You can tweak behavior by editing the top of vix_downloader.py:

# at top of script
MPD_TIMEOUT = 45        # time to wait for .mpd URL (seconds)
SAFE = "-_.() abc…0123456789"  # allowed filename chars

Or adjust:

  • Scroll delays: time.sleep(...) after selections
  • max_scrolls in scroll_and_extract_metadata()
  • N_m3u8DL‑RE flags (bitrate selection, threads)

🔄 Resume & Logging

Already‑downloaded episodes (detected via titles.csv or existing .mp4) are skipped on re‑run.

  • titles.csv stores: EP_CODE, Episode Title, Filename
  • failures.log records episodes that failed to download or convert.

🙌 Support Me

If you find this tool useful, I'd appreciate a coffee: Buy Me A Coffee


🤝 Contributing

Fork the repo

Create a feature branch

Submit a PR with tests/examples

Please follow code style and update this README where appropriate.


📜 License

This project is licensed under the AGPL‑3.0 license. See LICENSE for details.

About

Robust Python tool to batch‑download complete ViX seasons (video, Spanish audio & subtitles) via Selenium + N_m3u8DL‑RE.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages