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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
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)
#!/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
#!/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
#!/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)
robinoman gamingonlinux wargaming gogcom
Offline
Chodzi Ci o te serwisy:
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)
Offline
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
mpv http://twitch.tv/gogcom
załapał od razu, bez streamlinka.
Playing: http://twitch.tv/gamingonlinux [ytdl_hook] ERROR: gamingonlinux is offline
Playing: http://twitch.tv/wargaming [ytdl_hook] ERROR: wargaming is offline
Playing: http://twitch.tv/robinoman [ytdl_hook] ERROR: robinoman is offline
jak widać, na razie 25% sukcesu, ale youtube-dl daje radę ;)
Offline
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:
streamlink www.twitch.tv/gogcom
podaje
[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:
streamlink www.twitch.tv/orzanel
[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
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:
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:
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)
Offline
[quote=Jacekalex]
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:
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:
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
[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
Strony: 1
Time (s) | Query |
---|---|
0.00019 | SET CHARSET latin2 |
0.00008 | SET NAMES latin2 |
0.00207 | 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='3.137.192.3' WHERE u.id=1 |
0.00113 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.137.192.3', 1713947192) |
0.00045 | SELECT * FROM punbb_online WHERE logged<1713946892 |
0.00114 | DELETE FROM punbb_online WHERE ident='40.77.167.48' |
0.00089 | DELETE FROM punbb_online WHERE ident='47.128.119.16' |
0.00104 | SELECT topic_id FROM punbb_posts WHERE id=309949 |
0.00108 | SELECT id FROM punbb_posts WHERE topic_id=29490 ORDER BY posted |
0.00114 | 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.00008 | SELECT search_for, replace_with FROM punbb_censoring |
0.00089 | 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.00114 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=29490 |
Total query time: 0.01132 s |