Giter Club home page Giter Club logo

yt-dlg's Introduction

Build Status Azure DevOps coverage

yt-dlg

A cross platform front-end GUI of the popular youtube-dl media downloader written in wxPython. Supported sites

Screenshots

youtube-dl-gui main window

Requirements

Requirement for build Binaries/Executables

Optionals

Downloads

Installation

In Windows install make using winget

winget install GnuWin32.Make

In GNU/Linux install make. Ubuntu:

sudo apt install make

Install From Source

Note The latest version compatible with Python 3.6.1 is yt-dlg v1.8.2

  • Download & extract the source
  • Change directory into yt-dlg-1.8.4
  • Create virtual environment
make clean-requirements
make venv
  • Activate virtual environment
source venv/bin/activate
  • Install requirements, build translations and install
make install

Binaries

Create binaries using PyInstaller

  • Create virtual environment
make clean-requirements
make venv
  • Activate virtual environment
source venv/bin/activate
  • Install requirements, build translations and create binaries
make pyinstaller

Run yt-dlg

  • Activate virtual environment and run
source venv/bin/activate
yt-dlg

Note The default CLI Backend is yt-dlp you can change to youtube-dl CLI Backend in:

Settings -> Options -> Extra and change/select youtube-dl

Windows 10 / 11

Install using winget

winget install -e --id yt-dlg.yt-dlg

Debian 10

Install the following packages and their dependences:

sudo apt-get install -y build-essential dpkg-dev \
             libgtk-3-dev libjpeg-dev libtiff-dev \
             libsdl2-dev libgstreamer-plugins-base1.0-dev \
             libnotify-dev freeglut3 freeglut3-dev \
             libsm-dev python3-dev

Setting the virtual environment and activate

sudo apt-get install -y python3-venv
python3 -m venv venv
source venv/bin/activate
python3 -m pip install --upgrade pip setuptools wheel

Install wxPython , requirements and yt-dlg

pip3 install wxPython-4.1.1-cp37-cp37m-linux_x86_64.whl
pip3 install -r requirements/requirements.in
pip3 install --no-deps yt-dlg
yt-dlg

Comprobar wxPython 4

python3 -c "import wx ; print(wx.__version__)"

List and configure Locales

locale -a
sudo dpkg-reconfigure locales

openSUSE Tumbleweed

Install using zypper

Open Build Service

sudo zypper ar -cfp 90 https://download.opensuse.org/repositories/home:oleksis.fraga/openSUSE_Tumbleweed/home:oleksis.fraga.repo
sudo zypper install python38-yt-dlg
yt-dlg

With Python 3.8

The following steps can be executed if you use the Python version of the system (3.6, 3.8, 3.9)

sudo zypper dup  # Distribition Upgrade
sudo zypper -n update  # Non Interactive
sudo zypper -n install yum-utils

Add openSUSE Factory repository for wxPython 4

sudo zypper addrepo -f http://download.opensuse.org/tumbleweed/repo/oss/ openSUSE-Factory

Install wxPython 4 global (system level)

Need at least one font installed

sudo zypper -n install python38-wxPython google-opensans-fonts

Install other dev packages/tools for Python 3.8

sudo zypper -n install python38-pip python38-setuptools python38-devel python38-tools python38-virtualenv python38-requests

Install yt-dlg global from PyPI

pip3 install yt-dlg

Add yt-dlg executable to the PATH and run

PATH=$HOME/.local/bin:$PATH
yt-dlg

openSUSE 15.3

We need build wxPython 4.1.1 for Python 3.6

Dev Tools

sudo zypper -n install -t pattern devel_basis
sudo zypper -n install gcc-c++
sudo zypper -n install git wget

Requirement for install Python from source (Build dependencies)

sudo zypper -n install \
    readline-devel sqlite3-devel libbz2-devel \
    zlib-devel libopenssl-devel libffi-devel \
    ncurses-devel tk-devel libgdbm4 \
    ca-certificates gcc

Install wxPython 4 Dependencies

sudo zypper -n install \
    gtk3-devel gtk3-tools webkit2gtk3-devel \
    libjbig2 libjbig-devel libjpeg8 libjpeg8-devel \
    libpng16-16 libpng16-devel libtiff-devel \
    libSDL2-2_0-0 libSDL2-devel libSM6 libSM-devel\
    gstreamer gstreamer-devel gstreamer-plugins-base-devel \
    freeglut-devel libnotify4 libnotify-devel \
    libSM6 libSM-devel liblzma5 libXtst6 libXv1 \
    gdk-pixbuf-loader-rsvg gdk-pixbuf-query-loaders \

Install Pyenv

curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> $HOME/.bashrc
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> $HOME/.bashrc
echo 'eval "$(pyenv init -)"' >> $HOME/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> $HOME/.bashrc
source $HOME/.bashrc

Custom Python build with --enable-shared

PYTHON_CONFIGURE_OPTS="--enable-shared" \
    pyenv install 3.6.13

pyenv shell 3.6.13

Add python-config to the PATH

PATH=$(pyenv root)/versions/${PYENV_VERSION}/bin:$PATH

Install requirements and run yt-dlg

python -m pip install --upgrade pip six setuptools wheel
python -m pip install -r requirements/requirements.in
pip install yt-dlg
yt-dlg

List locales

locale  -av

Windows Subsystem for Linux

Some issues is possible. Can read more in: Troubleshooting GUI Linux apps on openSUSE on WSLg

sudo zypper -n install --no-recommends -t pattern gnome
sudo /usr/bin/gdk-pixbuf-query-loaders-64 --update-cache

Mageia 8

Exists a third-party repository for Mageia 8 that have a rpm package for youtube-dl-gui. The repository comes from BlogDrake The Official Community for Spanish Talking Users

Instructions

First you have to configure the Official Mageia repositories then

For i586 - 32bit systems

su -
urpmi.addmedia --wget --distrib https://ftp.blogdrake.net/mageia/mageia8/i586
urpmi yt-dlg
exit

For x86_64 - 64bit systems

su -
urpmi.addmedia --wget --distrib https://ftp.blogdrake.net/mageia/mageia8/x86_64
urpmi yt-dlg
exit

Source and RPM on Mageia 8

macOS Monterey

Custom Python build with --enable-framework

PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.10.6
pyenv shell 3.10.6
python -m pip install -r requirements/requirements.in
pip install yt-dlg
yt-dlg

Notes

An alternative to install wxPython 4 Phoenix from the Extras section

For Ubuntu 20.04

wget https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-20.04/wxPython-4.1.1-cp38-cp38-linux_x86_64.whl
pip3 install wxPython-4.1.1-cp38-cp38-linux_x86_64.whl

Contributing

Buy Me A Coffee

You can send me bitcoins to the following address: bc1qnlea6zlfca9fpk62pzedrh6z20w0pxn2ujslztw8t84spprlr4cqdeg8u5

Bitcoin Address

Authors

See AUTHORS file

License

The Public Domain License

Frequently Asked Questions

See FAQs file

Thanks

Thanks to everyone who contributed to this project and to @philipzae for designing the new UI layout.

yt-dlg's People

Contributors

2e0pgs avatar arttse avatar cleitonme avatar daviewales avatar dependabot[bot] avatar dieterplex avatar dnlsrl avatar dstftw avatar fat115 avatar fironet avatar fsmaxb avatar goyou avatar gr3q avatar ikkebr avatar jakub-w avatar jose1711 avatar lgbaldoni avatar lsahn-gh avatar mi2-2 avatar mrs0m30n3 avatar nodiscc avatar oleksis avatar pavreh avatar philipzae avatar pr0d1r2 avatar schorschii avatar sebix avatar snosi avatar swyter avatar ujdhesa avatar

Watchers

 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.