Страница 1 из 1
sudo pip install yt-dlp
Добавлено: 11 май 2025, 00:37
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 \
Re: sudo pip install yt-dlp
Добавлено: 11 май 2025, 00:39
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
Re: sudo pip install yt-dlp
Добавлено: 01 июн 2025, 16:18
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 \