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 Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

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

  nycko - Użytkownik

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...;)

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, [b]mpv[/b] wszystko, co pobiera netu, pobiera przy pomocy [b]youtube-dl[/b].

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 :)

Offline

 

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

  nycko - Użytkownik

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...;)

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 :)

Offline

 

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

  nycko - Użytkownik

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...;)

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-select-video-quality-from-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 :)

Offline

 

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

  nycko - Użytkownik

nycko
Użytkownik
Zarejestrowany: 2011-11-17

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

[quote=Jacekalex]

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)

[/quote]
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.

[quote=Jacekalex]Wybór formatu?
np:

Kod:

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

Sznurek:
https://askubuntu.com/questions/486297/how-to-select-video-quality-from-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[/quote]
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
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.010 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00012 SET CHARSET latin2
0.00009 SET NAMES latin2
0.00117 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.223.205.61' WHERE u.id=1
0.00126 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.223.205.61', 1713459405)
0.00047 SELECT * FROM punbb_online WHERE logged<1713459105
0.00092 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=29490 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00229 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=29490 ORDER BY p.id LIMIT 0,25
0.00150 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=29490
Total query time: 0.00788 s