Skip to content
This repository has been archived by the owner on Sep 10, 2022. It is now read-only.

kevinrvaz/m3u8-dl

Repository files navigation

m3u8-dl

MIT license PyPI version Docker CodeQL Upload Python Package Downloads

A CLI program to download a video played using a m3u8 playlist. Read about m3u8 here https://en.wikipedia.org/wiki/M3U#M3U8

Dependencies

Usage

Setup without Docker

  • clone the repository using git clone "ssh/https url".
  • create a virtual environment using virtualenv -p python3.6 venv in linux terminal, see 'Dependencies' for platform specific instructions.
  • activate virtual environment using source venv/bin/activate in linux terminal, see 'Dependencies' for platform specific instructions.
  • install dependencies using pip install -r requirements.txt.
  • insert the url request headers in headers.txt.
  • start the script using python -m m3u8dl <url of playlist>.

Setup with Docker

Re-build docker image

  • build docker image using docker build -t m3u8dl-img .
  • start container docker run -d -it --name m3u8dl-app m3u8dl-img
  • attach to container via terminal docker exec -it m3u8dl-app bash
  • start the script using python3 -m m3u8dl <url of playlist>.

Pull exisiting docker image from github packages or docker hub

  • pull from docker hub using docker pull excaliburkrv/m3u8-dl
  • if not pulled from docker hub you can pull from github packages using docker pull ghcr.io/excalibur-kvrv/m3u8-dl:master
  • then start the container in detached mode using docker run -d -it --name m3u8dl-app excaliburkrv/m3u8-dl if pulled from docker hub
  • attach to container via terminal docker exec -it m3u8dl-app sh
  • start the script using python3 -m m3u8dl <url of playlist>.

Installing/Uninstalling Globally

Installation and usage using pip:-

  • ensure ffmpeg is installed see dependecies section
  • visit PyPI https://pypi.org/project/m3u8dl/0.5.2/ or install using below commands.
  • run pip install m3u8dl
  • run the program now using m3u8-dl <url-of-playlist>

Uninstalling using pip:-

  • run pip uninstall m3u8dl

Installation in ubuntu using PyInstaller:-

  • install pyinstaller using pip install PyInstaller
  • activate virtualenv using source venv/bin/activate
  • run pyinstaller main.py --name m3u8-dl --onefile -p venv/lib/python3.6/site-packages/ in terminal.
  • run sudo mv dist/m3u8-dl /usr/local/bin/ in terminal window.
  • now that the program is installed globally you can start the program using m3u8-dl in the terminal

Uninstalling in ubuntu:-

  • run sudo rm /usr/local/bin/m3u8-dl

CLI Options

--help, -h:- display how to use the script
--convert, -c:- specify this flag to convert the video to mp4 using ffmpeg`
--name, -n:- specify the name by which to save the downloaded video, else 'video' is chosen as default name`
--header-path, -p:- specify the path of header file`
--retry, -r:- specify number of retries, by default 5 retries will be initiated
--debug, -d:- print helpful messages to console to understand program flow
--processes, -m:- specify custom number of processes, default is 4
--threads, -t:- specify custom number of threads, default is 4 per process