Giter VIP home page Giter VIP logo

dlvh's Introduction

dlvh

dlvh (download video here) is a wrapper for yt-dlp that allows you to quickly download videos in a folder according to predefined nested local rules.

Install

	pip install dlvh

How to use

Use dlvh *URL* to download to current folder, dlvh -p *preset* *URL* to download to a preset, and dlvh -n *preset* (in the target directory) to define new preset.

You can have dlvh configuration files on each level of the directory tree. These files use a simple yaml structure:

options:
  download-archive: .ytdlarchive # Relative to the folder where the download happens
  cookies: ^/yt_cookies.txt # Relative to THIS configuration file, even in subfolders
  output: '%(id)s.%(title)s.%(ext)s'
  merge-output-format: mkv
flags:
- restrict-filenames
- prefer-free-formats

Let's say you have the following folder structure:

├── audio  
│   ├── dlvh.yml # `extract-audio`  
│   ├── unsettling_screaming  
│   └── calm_nature_sounds  
└── video  
    ├── dlvh.yml # `embed-thumbnail`, `download-archive: .ytdlarchive`  
    ├── asmr  
    └── dance_covers  
        ├── dlvh.yml # `download-archive: ^/ytdlarchive`  
        ├── twice  
        └── redvelvet  

When you download something to audio/calm_nature_sounds, the flag extract-audio from its parent folder will be respected.
When you download something to video/asmr, the flag embed-thumbnail and the option download-archive: .ytdlarchive will be respected, meaning a local file video/asmr/.ytdlarchive will be used as archive.
When you download something to videos/dance_covers/twice however, its parent folder's option download-archive: ^/ytdlarchive overwrites this, meaning a common archive file dance_covers/.ytdlarchive will be used for all subfolders.

dlvh's People

Contributors

krateng avatar

Stargazers

 avatar

Watchers

James Cloos avatar  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.