Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundację Dzieciom „Zdążyć z Pomocą”.
Więcej informacji na dug.net.pl/pomagamy/.

#1 2017-04-09 16:46:08

nycko
Użytkownik
Zarejestrowany: 2011-11-17

bash - prosty skrypt do obsługi ulubionych streamerów z twitcha

Skrypt obudowany wokół programów streamlink i mpv, więc są one niezbędne do działania. Może się komuś przydać

Podzielony na 3 główne pliki, żeby łatwiej było się rozeznać + 4-ty z listą ulubionych streamerów

główny plik (twitch)

Kod:

#!/bin/bash
. twitch.conf    #plik konfiguracyjny
. twitch.func    #funkcje użyte


#sprawdza czy jakiś argument jest podawany do skryptu (np. twitch nazwa_streamu jakosc_streamu). Jeśli tak to uruchamia stream od razu
if [ -n "$1" ]; then
    streamlink --player="mpv --vo=$vo --hwdec=$hwdec" $TWITCH/$1 $2
else
    #menu główne.
    d=0
    next=no
    twitchlist
    while [ $d -lt 999 ]; do
        echo "#############################################################################"
        echo -e "$CLEAR 1. $RED Sprawdź dostępne streamy $CLEAR"
        echo "#############################################################################"
        for (( c=2; c<=$[n-1]; c++))
        do
            echo -e "$CLEAR$c. Uruchom $YELLOW${list[$c]}$CLEAR"
        done
        echo -e "x. Zakończ"
        
        read d
        num=`echo "$d" | grep -E ^\-?[0-9]+$`
        if [ "$num" != '' ]; then
            next=yes
        fi
        
        clear
        case "$d" in
            "1")    check ;;
            "x")    d=999 ;;
            *)    if [ "$next" = "yes" ] && [ $d -lt $n ]; then
                        run ${list[$d]}
                    else
                        d=0
                    fi ;;
        esac
    done
fi

twitch.conf

Kod:

#!/bin/bash
# Plik konfiguracyjny

# Ścieżka do pliku z ulubionymi streamami
LIST="/home/user/bin/twitch-list"

# ustawienia twitcha
TWITCH="www.twitch.tv"
TWITCH_QUALITY="medium"

# ustawienia mpv
vo=drm    #sterownik wideo (man mpv)
hwdec=vaapi    #sprzętowe dekodowanie (man mpv)

# Kolory czcionek
BLACK="\033[0;30m"
GREEN="\033[0;32m"
BLUE="\033[38;5;75m"
YELLOW="\033[38;5;11m"
RED="\033[38;5;1m"
GRAY="\033[38;5;7m"
ORANGE="\033[38;5;214m"

#
CLEAR="$(tput sgr0)"    #przywraca do czcionki pierwotnej
BOLD="$(tput bold)"

twitch.func

Kod:

#!/bin/bash

# Parsowanie listy ulubionych do tabeli
twitchlist ()
{
    n=2
    while IFS='' read -r line || [[ -n "$line" ]]; do
               list[$n]+=$line
               n=$[n+1]
    done < $LIST
}

# sprawdzanie statusu streamów
check ()
{
    echo -e "$RED Sprawdzanie dostępnych streamów: $CLEAR"
    
    i=2
    while [ $i -lt $n ]; do
        echo -e "$YELLOW ${list[$i]} $CLEAR"
        streamlink $TWITCH/${list[$i]}
        i=$[i+1]
    done
}

# uruchamianie wybranego streamu
run ()
{
    echo -e "$BLUE Uruchamiam $1 stream $CLEAR"
    streamlink --player="mpv --vo=$vo --hwdec=$hwdec" $TWITCH/$1 $TWITCH_QUALITY
}

np. twitch-list (lista ulubionych streamerów)

Kod:

robinoman
gamingonlinux
wargaming
gogcom

Offline

 

#2 2017-04-09 17:09:18

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: bash - prosty skrypt do obsługi ulubionych streamerów z twitcha

Chodzi Ci o te serwisy:

Kod:

twitch:chapter
twitch:clips
twitch:profile
twitch:stream
twitch:video
twitch:videos:all
twitch:videos:highlights
twitch:videos:past-broadcasts
twitch:videos:uploads
twitch:vod

Jeśli tak, to twoje rękodzieło artystyczne ma potężną konkurencję:
https://rg3.github.io/youtube-dl/supportedsites.html

Przy okazji, mpv wszystko, co pobiera netu, pobiera przy pomocy youtube-dl.

xD

Ostatnio edytowany przez Jacekalex (2017-04-09 17:11:37)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#3 2017-04-09 17:19:54

nycko
Użytkownik
Zarejestrowany: 2011-11-17

Re: bash - prosty skrypt do obsługi ulubionych streamerów z twitcha

youtube-dl nie przeglądałem pod kątem twitcha. Możliwe, że wynalazłem koło na nowo :)
Chodziło mi o to, że mam kilku streamerów, których czasami oglądam, a że nie chce mi się odpalać X-ów kiedy robię w konsoli, to napisałem coś dla siebie. Mam w pliku kilku ulubionych, skrypt sam generuje na jego podstawie menu, w razie czego sprawdza czy streamują, na życzenie odpala.

Jak spodoba mi się ktoś nowy, to go do ulubionych dopiszę w 3s. Z palca bez dopisywania też podejrzę jak uruchomię z dodatkowymi argumentami, np. twitch jacekalex 720p.

Może komuś się przyda, jak nie całość, to fragmenty.

Offline

 

#4 2017-04-09 17:29:18

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: bash - prosty skrypt do obsługi ulubionych streamerów z twitcha

Kod:

mpv http://twitch.tv/gogcom

załapał od razu, bez streamlinka.

Kod:

Playing: http://twitch.tv/gamingonlinux
[ytdl_hook] ERROR: gamingonlinux is offline

Kod:

Playing: http://twitch.tv/wargaming
[ytdl_hook] ERROR: wargaming is offline

Kod:

Playing: http://twitch.tv/robinoman
[ytdl_hook] ERROR: robinoman is offline

jak widać, na razie 25% sukcesu, ale youtube-dl daje radę ;)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#5 2017-04-09 17:39:33

nycko
Użytkownik
Zarejestrowany: 2011-11-17

Re: bash - prosty skrypt do obsługi ulubionych streamerów z twitcha

faktycznie, właśnie przeglądam mana, może się nad tym pochylę.

zastanawiam się tylko, w jaki sposób streamlink pobiera i wyświetla dane dot. jakości transmisji.
Dla przykładu:

Kod:

streamlink www.twitch.tv/gogcom

podaje

Kod:

[cli][info] Found matching plugin twitch for URL www.twitch.tv/gogcom
Available streams: audio, mobile (worst), low, medium, high, source (best)

Ale już dla:

Kod:

streamlink www.twitch.tv/orzanel

Kod:

[cli][info] Found matching plugin twitch for URL www.twitch.tv/orzanel
Available streams: 720p60_alt, audio_only, 160p (worst), 360p, 480p, 720p, 720p60 (best)

Streamlink mi to poda, więc nawet jak na sztywno mam w configu jakość na medium, to po takim komunikacie z palca uruchomię sobie np. w 720p dla drugiego streama.

Co za tym idzie, czy youtube-dl jest w stanie podać mi obsługiwane jakości - jak to zgłębię to faktycznie się streamlinka pozbędę ze skryptu.

Offline

 

#6 2017-04-09 17:55:36

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: bash - prosty skrypt do obsługi ulubionych streamerów z twitcha

Kod:

youtube-dl  --list-formats  http://twitch.tv/orzanel
[twitch:stream] orzanel: Downloading stream JSON
[twitch:stream] orzanel: Downloading channel access token
[twitch:stream] orzanel: Downloading m3u8 information
[info] Available formats for 25006248464:
format code      extension  resolution note
meta             mp4        multiple   Quality selection URL 
audio_only       mp4        audio only  135k , mp4a.40.2
160p             mp4        284x160     331k , avc1.77.31, mp4a.40.2
360p             mp4        640x360     720k , avc1.77.31, mp4a.40.2
480p             mp4        852x480    1402k , avc1.77.31, mp4a.40.2
720p             mp4        1280x720   2347k , avc1.77.31, mp4a.40.2
720p60           mp4        1280x720   3397k , avc1.77.31, mp4a.40.2
720p60__source_  mp4        1280x720   5647k , avc1.4D4029, mp4a.40.2 (best)

Wybór formatu?
np:

Kod:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio'

Sznurek:
https://askubuntu.com/questions/486297/how-to-selec … om-youtube-dl

Tu masz dyskusję, jak to zaimplementować w konfigu mpv:
https://github.com/mpv-player/mpv/issues/1321

Ja mam tak:

Kod:

grep ytdl-format /etc/mpv/config
ytdl-format=bestvideo[height<=?1080][vcodec=mp4]+bestaudio/best

Pozdro

Ostatnio edytowany przez Jacekalex (2017-04-09 18:01:43)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Online

 

#7 2017-04-09 18:21:18

nycko
Użytkownik
Zarejestrowany: 2011-11-17

Re: bash - prosty skrypt do obsługi ulubionych streamerów z twitcha

Jacekalex napisał(-a):

Kod:

youtube-dl  --list-formats  http://twitch.tv/orzanel
[twitch:stream] orzanel: Downloading stream JSON
[twitch:stream] orzanel: Downloading channel access token
[twitch:stream] orzanel: Downloading m3u8 information
[info] Available formats for 25006248464:
format code      extension  resolution note
meta             mp4        multiple   Quality selection URL 
audio_only       mp4        audio only  135k , mp4a.40.2
160p             mp4        284x160     331k , avc1.77.31, mp4a.40.2
360p             mp4        640x360     720k , avc1.77.31, mp4a.40.2
480p             mp4        852x480    1402k , avc1.77.31, mp4a.40.2
720p             mp4        1280x720   2347k , avc1.77.31, mp4a.40.2
720p60           mp4        1280x720   3397k , avc1.77.31, mp4a.40.2
720p60__source_  mp4        1280x720   5647k , avc1.4D4029, mp4a.40.2 (best)

Dzięki za naprowadzenie. Nie przyszło mi do głowy, żeby przez youtube-dl to przepuścić, pomimo tego, że do YT używam.
Przegrepować tylko i można się ze streamlinkiem żegnać. Dzięki.

Jacekalex napisał(-a):

Wybór formatu?
np:

Kod:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio'

Sznurek:
https://askubuntu.com/questions/486297/how-to-selec … om-youtube-dl

Tu masz dyskusję, jak to zaimplementować w konfigu mpv:
https://github.com/mpv-player/mpv/issues/1321

Ja mam tak:

Kod:

grep ytdl-format /etc/mpv/config
ytdl-format=bestvideo[height<=?1080][vcodec=mp4]+bestaudio/best

Pozdro

Tak to znałem, używam w mpv.conf, w profilach

Kod:

[yt-term]
ytdl-format=bestvideo[height<=?720]+bestaudio/best
vo=drm
hwdec=vaapi

Sęk w tym, że nawyków dot. youtuba nie przeniosłem na twitcha. Jeszcze raz dzięki na naprowadzenie.
A streamlinka wywalę... jak znajdę czas :)
Pozdrawiam

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)