Code Monkey home page Code Monkey logo

m3u8-dl's Introduction

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

m3u8-dl's People

Contributors

excalibur-kvrv avatar vaibhav159 avatar dayvsonsales avatar oliververmeulen avatar chanduvardhan007 avatar dependabot-preview[bot] avatar lcd1232 avatar mend-bolt-for-github[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.