Скрипт для вырезки фрагмента из записи Twitch стрима
- #!/bin/bash
 - # Requirements:
 - # - curl, ffmpeg, yt-dlp
 - # - Telegram bot token
 - # - List of chats
 - TELEGRAM_BOT_TOKEN="1234567890:AAAAABBBBCCCCDDDDDEEEEFFFFFGGGGG"
 - TELEGRAM_CHATS=("Exit" "User 1" "Chat 1" "Chat 2")
 - TELEGRAM_CHAT_IDS=("0" "1234567" "-1001234567890" "-1001234567891")
 - BROWSER="firefox"
 - function to_telegram () {
 - echo "Choose a chat:"
 - for i in "${!TELEGRAM_CHATS[@]}"; do
 - printf " %s. %s\n" "$i" "${TELEGRAM_CHATS[$i]}"
 - done
 - read -rn1 ch
 - local chat_id="${TELEGRAM_CHAT_IDS[$ch]:-0}"
 - if [[ "$chat_id" != "0" ]]; then
 - echo "Sending to ${TELEGRAM_CHATS[$ch]}"
 - curl -s "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendVideo" \
 - -F parse_mode="markdown" \
 - -F caption="$2" \
 - -F chat_id="$chat_id" \
 - -F video="@$1"
 - fi
 - }
 - if [[ "$1" =~ ((http.*twitch.*videos/([0-9]+))\?t=([0-9]+)h([0-9]+)m([0-9]+)s) ]]; then
 - # Download Twitch VOD by timing
 - duration=${2:-30}
 - scale=${3:-720}
 - hh="${BASH_REMATCH[4]}"
 - mm="${BASH_REMATCH[5]}"
 - ss="${BASH_REMATCH[6]}"
 - filename="tw_${BASH_REMATCH[3]}_${hh}${mm}${ss}_${duration}_${scale}p.mp4"
 - if [ -f "$filename" ]; then
 - echo "File already exists. Choose:"
 - echo " 0. Exit"
 - echo " 1. Overwrite"
 - echo " 2. Send to Telegram"
 - read -rn1 ch
 - if [[ "$ch" == "2" ]]; then
 - to_telegram "$filename" "$1"
 - exit 0
 - fi
 - if [[ "$ch" != "1" ]]; then
 - exit 0
 - fi
 - fi
 - url="${BASH_REMATCH[2]}"
 - start="${hh}:${mm}:${ss}"
 - echo "Downloading $url, $start + ${duration}s, ${scale}p > $filename"
 - ffmpeg -loglevel quiet -stats \
 - -ss "$start" -t "$duration" \
 - -i "$(yt-dlp -g -- "$url")" \
 - -vf "scale=-2:$scale" \
 - -crf 24 \
 - -y "$filename" && \
 - to_telegram "$filename" "[source]($1)"
 - elif [[ "$1" =~ (http.*twitch.*/(.*)) ]]; then
 - # Download Twitch stream
 - scale=${2:-720}
 - filename="tw_${BASH_REMATCH[2]}__$(date +%s)_${scale}p.mp4"
 - url="${BASH_REMATCH[1]}"
 - echo "Downloading $url, ${scale}p > $filename"
 - ffmpeg -loglevel quiet -stats \
 - -i "$(yt-dlp --cookies-from-browser $BROWSER -g -- "$url")" \
 - -vf "scale=-2:$scale" \
 - -crf 24 \
 - -y "$filename" && \
 - to_telegram "$filename" "[source]($1)"
 - fi
 - if [ -f "$1" ]; then
 - # Send file to Telegram
 - to_telegram "$@"
 - fi
 
При помощи данного скрипта можно быстро вырезать нужную часть видео из записи стрима на Twitch. Также может отправлять видео до 20 Мб в Telegram.
Копируем тайминг в формате https://www.twitch.tv/videos/1234567890?t=0h32m28s, затем указываем количество секунд видео и опционально качество (480/720/1080). Пример:
twitch https://www.twitch.tv/videos/1828158224?t=0h29m52s 21 1080
twitch https://www.twitch.tv/Yoclesh 1080
    
Копируем тайминг в формате https://www.twitch.tv/videos/1234567890?t=0h32m28s, затем указываем количество секунд видео и опционально качество (480/720/1080). Пример:
twitch https://www.twitch.tv/videos/1828158224?t=0h29m52s 21 1080
twitch https://www.twitch.tv/Yoclesh 1080