All Projects → ddelange → yt

ddelange / yt

Licence: BSD-3-Clause license
Fine-tuning the use of youtube-dl for audio and videophiles

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to yt

Candy
🍭 Cross-platform YouTube-downloader with playlist and channel support as well as build-in audio / video converter.
Stars: ✭ 229 (+487.18%)
Mutual labels:  youtube-dl, youtube-downloader, download-videos
Get It
A macOS GUI for youtube-dl
Stars: ✭ 483 (+1138.46%)
Mutual labels:  youtube-dl, youtube-downloader, download-videos
pymusicdl
Download songs based on song name/ YouTube playlist/ Spotify playlist /album
Stars: ✭ 41 (+5.13%)
Mutual labels:  youtube-dl, youtube-downloader, download-songs
Youtub.ly Android
An android app to download 📹 videos and songs from youtube to phone internal storage
Stars: ✭ 17 (-56.41%)
Mutual labels:  youtube-dl, youtube-downloader, download-videos
Youtube Downloader
👍 A much faster alternative to youtube-dl built for PHP applications. Working as of 2021-02-27
Stars: ✭ 474 (+1115.38%)
Mutual labels:  youtube-dl, youtube-downloader, download-videos
Youtubevideodownloader
Download videos from YouTube and many other video sites
Stars: ✭ 39 (+0%)
Mutual labels:  youtube-dl, youtube-downloader, download-videos
odio
A Simple Utility to Download Music (.m4a) From Youtube Links Using Only Clipboard/PasteBoard
Stars: ✭ 32 (-17.95%)
Mutual labels:  youtube-dl, download-songs
android-browser-downloader
🌎 Android Browser - Video Downloader - This repository is deprecated. Please check out new version of this project at: https://github.com/cuongpm/youtube-dl-android
Stars: ✭ 34 (-12.82%)
Mutual labels:  youtube-dl, youtube-downloader
Laravel-Youtube-API
A way to add an API to your Laravel app that converts youtube video's to mp3/mp4 and returns a download/stream link and information.
Stars: ✭ 19 (-51.28%)
Mutual labels:  youtube-dl, youtube-downloader
YouP3
Android app for downloading media from YouTube with 4K Support (Beta)
Stars: ✭ 51 (+30.77%)
Mutual labels:  youtube-dl, youtube-downloader
Yturl
YouTube videos on the command line
Stars: ✭ 218 (+458.97%)
Mutual labels:  youtube-dl, youtube-downloader
vcrss
Create your own VCR/TiVo that downloads videos from RSS or Atom feeds using command line tools such as youtube-dl and svtplay-dl.
Stars: ✭ 11 (-71.79%)
Mutual labels:  youtube-dl, download-videos
EazyLoader
EazyLoader is Flask based web-application built to make downloading easy for you. Download videos and pictures from YouTube and Instagram in the best available quality. You can also download slides from SlideShare in PDF or PPTX format. In addition to that, you can calculate duration of YouTube Playlist at different speeds. You can also encrypt …
Stars: ✭ 42 (+7.69%)
Mutual labels:  youtube-downloader, instagram-downloader
gropple
Server and bookmarklet to download files via youtube-dl directly from your browser. Cross platform single binary installation, web browser configurable.
Stars: ✭ 33 (-15.38%)
Mutual labels:  youtube-dl, youtube-downloader
Youtubedl Android
youtube-dl for android
Stars: ✭ 235 (+502.56%)
Mutual labels:  youtube-dl, youtube-downloader
PowerShell-Youtube-dl
A PowerShell script interface used to operate the youtube-dl command line program.
Stars: ✭ 64 (+64.1%)
Mutual labels:  youtube-dl, youtube-downloader
youtubly-android
An android app to download 📹 videos and 🎶 songs from youtube to phone internal storage. In a nutshell NewPipe for just audio.
Stars: ✭ 24 (-38.46%)
Mutual labels:  youtube-dl, youtube-downloader
ytdl
Get Direct [d]own[l]oad ⬇️⬇️ Links of any [y]ou[t]ube Video . Written in Rust, for personal use.
Stars: ✭ 25 (-35.9%)
Mutual labels:  youtube-downloader, download-videos
easyYoutubeDL
A manager for automating download lists based on youtube-dl
Stars: ✭ 21 (-46.15%)
Mutual labels:  youtube-dl, youtube-downloader
android-youtube-dl
The android library that wraps Python 2.7 and youtube-dl python scripts
Stars: ✭ 35 (-10.26%)
Mutual labels:  youtube-dl, youtube-downloader

yt - fine-tuning the use of youtube-dl

Download music or video from e.g. YouTube, Soundcloud, Instagram, Facebook. For a full list of supported sites and services, see https://github.com/ytdl-org/youtube-dl/blob/master/docs/supportedsites.md.

yt

Description

yt is a pure-bash command-line tool that optimizes the use of youtube-dl for audio and videophiles with comprehensive and customizable presets, empirically tested on multiple streams. Maintains a download archive, to prevent duplicates when periodically downloading YouTube playlists or Soundcloud sets. Parses title ("%(artist)s - %(title)s") and retrieves a thumbnail, and injects these into file metadata. Adds the url id of the source to the filename, attempts to bypass geographical restrictions, and more.

Features include, but are not limited to:

  • Parallel downloads
  • Audio mode (default)
  • Video mode (MKV -vcodec copy | MP4 AV1 | MP4 AVC)
  • HDR video (MKV)
  • Playlist mode (currently each playlist is download sequentially)
  • Custom audio bitrate, video resolution, destination folder

The audio streams in converted (video) files from yt will generally be of higher quality compared to online alternatives, while maintaining a comparable file size. This is achieved by preferring WAV/OPUS source streams, and by converting using the Fraunhofer FDK AAC codec library at a bitrate of 256kbit/s (sufficient to encode a full 44.1kHz stream using libfdk_aac without losing detail at higher frequencies). yt vs online

Installation

Dependencies are installations of youtube-dl, atomicparsley, and ffmpeg compiled using at least --with-fdk-aac (fdk-aac is GPL-incompatible, so this will produce an unredistributable distribution).

OSX

To install yt and its dependencies:

brew install ddelange/brewformulae/yt

Or manually (if you wish to avoid Homebrew, and install the dependencies yourself):

  • Compile ffmpeg including --with-fdk-aac.
  • Install youtube-dl.
  • Install atomicparsley.
  • Put yt in your path:
    git clone https://github.com/ddelange/yt.git ./yt
    cd ./yt && bash ./install.sh
    yt --help  # check that all is well

Debian/Ubuntu

On Linux, you can use Homebrew as well:

brew install ddelange/brewformulae/yt

Or manually (if you wish to avoid Homebrew, and install the dependencies yourself):

  • Compile ffmpeg including --with-fdk-aac. See example instructions, pick your favorite: [1] [2]
  • Install youtube-dl.
  • Install atomicparsley.
  • Put yt in your path:
    git clone https://github.com/ddelange/yt.git ./yt
    cd ./yt && bash ./install.sh
    yt --help  # check that all is well

Windows

Easiest would be using the Windows Subsystem for Linux (WSL), and using instructions above. But since youtube-dl has dedicated Windows distributions available, you could try the following:

[untested, assumes you're running Bash for Windows]

  • Compile ffmpeg including the non-free tools (which will contain libfdk-aac).
  • Install youtube-dl:
    • [either] Assuming python / python3 and pip / pip3 are installed, run sudo pip3 install youtube-dl or sudo pip3 install youtube-dl respectively.
    • [or] Download youtube-dl.exe and place it in any location on your PATH.
  • Make sure youtube-dl is recognized by your shell by typing youtube-dl --version.
  • Put yt in your path.

Usage

tl;dr:

  • Type yt to download m4a audio files for the (space separated) URL(s) fetched from clipboard (see also -c).
  • Type yt -vmM to download video into mp4, up to 1080p, preferably with AVC codec for better compatibility.
  • Type yt -vHP 2160 to download best quality video into mkv, up to 4K HDR if available.
NAME
      yt - fine-tuning the use of youtube-dl.  Download music or video from e.g.  YouTube,
      Soundcloud,  Instagram,  Facebook.  For a full list of supported sites and services,
      see https://github.com/ytdl-org/youtube-dl/blob/master/docs/supportedsites.md

SYNOPSIS
      yt [OPTIONS] [URL] [URL...]

DESCRIPTION
      yt is a bash function that optimizes the use of youtube-dl for audio and videophiles
      with comprehensive and customizable presets, empirically tested on multiple streams.
      Maintains a  download archive,  to prevent duplicates when  periodically downloading
      YouTube playlists or Soundcloud sets.  Parses title  ("%(artist)s - %(title)s")  and
      retrieves a thumbnail, and injects these into file metadata.  Adds the url id of the
      source to the filename, and attempts to bypass geographical restrictions.

      youtube-dl  is a command-line program to download videos from  YouTube.com  and many
      more sites.  It requires the Python interpreter, version 2.6, 2.7, or 3.2+,  and  it
      is not platform specific.  It should work on your Unix box,  on Windows or on macOS.
      It is released to the public domain,  which means you can modify it, redistribute it
      or use it however you like.

REQUIREMENTS
      installations  of  youtube-dl  (e.g. "brew install youtube-dl")  and ffmpeg compiled
      with --enable-libfdk-aac (e.g. "brew install ffmpeg --with-fdk-aac").

OPTIONS
      -h, --help
            Print this help text and exit.

      -U
            Update  youtube-dl  to latest  version  and  exit.  Make  sure  that  you have
            sufficient permissions (run with sudo if needed).

      -s
            Enable silent mode (send stdout to /dev/null).

      -S
            Enable sequential mode.  Default behaviour: parallel mode.  Each playlist will
            be downloaded sequentially as youtube-dl does not support parallel downloading
            of playlists (see #3746). The MAXPROCS (env) var sets parallelism (default 4).

      -f
            Force download, even when already recorded in --download-archive.

      -v
            Enable video mode. Defaults to audio mode. Only mono and stereo are supported.

      -c
            Fetch space separated  URLs from clipboard,  additional to the manually passed
            URLs. Auto-enables when no URLs are manually passed.

      -D POSIX_PATH
            Set the destination path.  Used for both the (intermediate) output and for the
            download archive. Defaults to  "~/Music/yt"  and  "~/Movies/yt"  for audio and
            video mode respectively. Override defaults with YT_MUSIC_DIR and YT_VIDEO_DIR.

      -p
            Enable playlist mode. When the input URL contains reference to a playlist, the
            whole playlist will be  downloaded.  Will only download URLs that have not yet
            been recorded in the download archive.

      -k
            Keep original audio additionally.  In most cases, this will keep e.g. OPUS for
            YouTube, or LAME MP3 / WAV for Soundcloud URLs.  Ignored when -v is specified.

      -a KBITS_PER_SECOND
            Set the output audio bitrate. Defaults to 256kbit/s.

      -r HERTZ
            Set the output audio sampling rate. Defaults to 44100Hz.

      -P PIXELS
            Set the maximum height in pixels  of the video output.  Ignored when -v is not
            specified.  Defaults to 1080px.  Constraint is dropped when no formats comply.

      -m
            Use MP4 when merging audio/video streams, keeping video codecs if possible and
            converting audio to 256kbit/s AAC (resolving full 44.1KHz stream). If no merge
            is needed,  the (single) source file is kept  and no conversion is  performed.
            Default behaviour:  copy downloaded audio/video streams into an MKV container,
            using OPUS audio codec and  VP9 video codec for small filesizes.  Ignored when
            -v is not specified. For YouTube this will yield a maximum resolution of 1080.
            Sometimes,  AV1 streams will only be available up to a certain resolution.  In
            this case, specifying -M might yield higher resolution.

      -M
            Prefer the older AVC codec over AV1. Results in bigger file-sizes, but  better
            playback compatibility. Ignored when -v and -m are not specified.

      -H
            Prefer HDR streams. Tested on YouTube videos. Overrides -m.

BSD 3-Clause License

Copyright (c) 2019, ddelange
All rights reserved.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].