sudo pip install yt-dlp

Ответить
ya
^-^
Сообщения: 2534
Зарегистрирован: 16 дек 2021, 19:56

sudo pip install yt-dlp

Сообщение ya »

sudo pip install yt-dlp

Код: Выделить всё

sudo apt install python3-pip
python3 -m pip install yt-dlp -U
crontab -e

Код: Выделить всё

20 23-7/2,8 * * * python3 -m pip install yt-dlp -U
gt@e12:~/ftp$ cat yt.sh

Код: Выделить всё

#!/bin/bash

yt-dlp -v \
-f "bv*[height<=1080][ext=mp4][vcodec^=avc1]+ba*[ext=m4a]" \
--cookies youtube_com_cookies.txt \
--no-overwrites \
--continue "$1"

exit 0

#--cookies youtube.com_cookies.txt \
#--cookies-from-browser \
#--cookies-from-browser chrome \
ya
^-^
Сообщения: 2534
Зарегистрирован: 16 дек 2021, 19:56

Re: sudo pip install yt-dlp

Сообщение ya »

rename_files.sh

Код: Выделить всё

#!/bin/bash

# Массив соответствий кириллических букв транслиту
declare -A translit_map=(
    [А]=A [Б]=B [В]=V [Г]=G [Д]=D [Е]=E [Ё]=Yo [Ж]=Zh [З]=Z [И]=I [Й]=Y [К]=K [Л]=L [М]=M [Н]=N [О]=O [П]=P [Р]=R [С]=S [Т]=T [У]=U [Ф]=F [Х]=Kh [Ц]=Ts [Ч]=Ch [Ш]=Sh [Щ]=Sch [Ъ]='' [Ы]=Y [Ь]='' [Э]=E [Ю]=Yu [Я]=Ya
    [а]=a [б]=b [в]=v [г]=g [д]=d [е]=e [ё]=yo [ж]=zh [з]=z [и]=i [й]=y [к]=k [л]=l [м]=m [н]=n [о]=o [п]=p [р]=r [с]=s [т]=t [у]=u [ф]=f [х]=kh [ц]=ts [ч]=ch [ш]=sh [щ]=sch [ъ]='' [ы]=y [ь]='' [э]=e [ю]=yu [я]=ya
    [À]=A [Â]=A [Æ]=A [Ç]=S [É]=E [È]=E [Ê]=E [Æ]=E [Œ]=E [Î]=I [Ï]=I [Ô]=O [Œ]=O [Ù]=U [Û]=U [Ü]=U [Ÿ]=Y
    [à]=a [â]=a [æ]=a [ç]=s [é]=e [è]=e [ê]=e [æ]=e [œ]=e [î]=i [ï]=i [ô]=o [œ]=o [ù]=u [û]=u [ü]=u [ÿ]=y
    [í]=i
)

# Функция для транслитерации строки
transliterate() {
    local input="$1"
    local output=""
    local length=${#input}
    for (( i=0; i<length; i++ )); do
        char="${input:i:1}"
        if [[ ${translit_map[$char]} ]]; then
            output+="${translit_map[$char]}"
        else
            output+="$char"
        fi
    done
    echo "$output"
}

# Обработка каждого файла в текущем каталоге
for file in *; do
    # Проверяем, что это файл
    if [[ -f "$file" ]]; then
        # Получаем имя файла без расширения и расширение
        base_name="${file%.*}"
        extension="${file##*.}"
        # Если файл без расширения, extension будет таким же как base_name, исправляем это
        if [[ "$base_name" == "$file" ]]; then
            extension=""
        fi

        # Транслитерируем имя файла
        new_name=$(transliterate "$base_name")
        # Заменяем все пробелы и непонятные символы на нижнее подчеркивание
        new_name=$(echo "$new_name" | sed -E 's/[^a-zA-Z0-9.\-]+/_/g')
        # Удаляем начальные и конечные подчеркивания
        new_name=$(echo "$new_name" | sed -E 's/^_+|_+$//g')

        # Формируем новое имя файла
        if [[ -n "$extension" && "$extension" != "$base_name" ]]; then
            new_file="${new_name}.${extension}"
        else
            new_file="$new_name"
        fi

        # Проверяем, чтобы не перезаписать существующий файл
        if [[ "$file" != "$new_file" ]]; then
            # Если файл с новым именем уже существует, можно добавить суффикс или пропустить
            if [[ -e "$new_file" ]]; then
                echo "Файл $new_file уже существует, пропускаем переименование $file."
            else
                mv "$file" "$new_file"
                echo "Переименован: $file → $new_file"
            fi
        fi
    fi
done

exit 0

ya
^-^
Сообщения: 2534
Зарегистрирован: 16 дек 2021, 19:56

Re: sudo pip install yt-dlp

Сообщение ya »

yt.sh

Код: Выделить всё

#!/bin/bash

child_pid=$!

argument="$1"

if [[ "$argument" =~ https?://(www\.|m\.)?youtube\.com/ || "$argument" =~ https?://youtu\.be/ ]]; then
    echo "Аргумент содержит ссылку на YouTube."

yt-dlp \
-f "bv*[height<=1920][ext=mp4][vcodec^=av]+ba*[ext=m4a]/bv*[height<=1920][ext=mp4][vcodec^=av]+ba*[ext=mp4]" --no-video-multistreams \
--flat-playlist \
--no-sponsorblock \
--no-warnings \
--no-overwrites \
--continue "$1" && ok=true

    if [ -z $ok ]; then
        echo "Error download 1080p"
#       yt-dlp -F "$1"
yt-dlp \
-f "bv*[height<=1920][ext=mp4][vcodec^=av]+ba*[ext=m4a]/bv*[height<=1920][ext=mp4][vcodec^=av]+ba*[ext=mp4]" \
--flat-playlist \
--no-sponsorblock \
--no-warnings \
--no-overwrites \
--cookies-from-browser chrome \
--continue "$1" && ok=true
    if [ -z $ok ]; then
        yt-dlp -F "$1"
        exit 1
    fi

#       exit 1
    fi


else
    echo "Аргумент не содержит ссылку на YouTube."

yt-dlp -v \
-f "bestvideo+bestaudio" \
--flat-playlist \
--no-warnings \
--no-sponsorblock \
--cookies-from-browser chrome \
--no-overwrites \
--continue "$1"


fi


sleep 1

./rename_files.sh

exit 0
kill $child_pid

#--cookies youtube.com_cookies.txt \
#--cookies-from-browser \
#--cookies-from-browser chrome \

# Download all playlists of YouTube channel/user keeping each playlist in separate directory:
# yt-dlp -o "%(uploader)s/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" "https://www.youtube.com/user/TheLinuxFoundation/playlists"

# Download Udemy course keeping each chapter in separate directory under MyVideos directory in your home
#  yt-dlp -u user -p password -P "~/MyVideos" -o "%(playlist)s/%(chapter_number)s - %(chapter)s/%(title)s.%(ext)s" "https://www.udemy.com/java-tutorial"

#-f bestvideo+bestaudio загрузит лучший формат только для видео, лучший формат только для аудио и объединит их с помощью ffmpeg.

#--write-thumbnail \
#/bin/kill -HUP $MAINPID
#--no-playlist \
#--cookies youtube_com_cookies.txt \
#--console-title \
#--progress \
#-f "bv*[height<=1080][ext=mp4][vcodec^=avc1]/bestvideo+ba*[ext=m4a]/bestaudio" \
#--no-sponsorblock \


Ответить