Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Języki skryptowe na co dzień | cz. 1. | youtube w mplayerze

Postanowiłem przygotować serię wpisów na temat wykorzystania języków skryptowych a dokładnie skryptów napisanych w tych językach. Językami, które posłużą do opisu konkretnych skryptów, będą bash i python. Prezentowane skrypty będą przygotowane do działania pod Linuksem a czasem Symbianem i najczęściej będą wykorzystywały do swojego działania programy znajdujące się w danym systemie lub czujniki w telefonie. Wszystkie skrypty tu prezentowane pomagają mi w większym lub mniejszym stopniu w codziennym korzystaniu z komputera czy telefonu.

W pierwszym krótkim wpisie z tej serii, przedstawię sposób na oglądanie filmów z serwisu youtube w odtwarzaczu mplayer - krótki i bardzo prosty skrypt.

Wiemy, jak flash potrafi spowolnić działanie komputera. Na moim, dosyć leciwym komputerze, odtwarzanie filmu z youtube we flash playerze to mordęga. Maksymalna, dopuszczalna jakość, to 480p - wszystko, co powyżej - "klatkuje".

Znalazłem sposób, żeby oglądać filmy w jakości 720p. Wykorzystałem do tego odtwarzacz mplayer i konsolowy "ściągacz" plików z youtube - youtube-dl.

youtube-dl, jest to skrypt, który pobiera filmy na dysk. Powinien znajdować się w standardowym repozytorium danej dystrybucji - w Ubuntu 12.04 jest. Niezbędne polecenie zapisałem w postaci skryptu basha pod nazwą youtube.sh.

Zawartość skryptu youtube.sh: #!/bin/sh mplayer $(youtube-dl -g "$1")

W bashu do zmiennych odwołujemy się znakiem $.

youtube-dl odwołuje się do zmiennej pobieranej, jako pierwszy parametr (skopiowany adres z youtube) poprzez "$1", a następnie poprzez -g uzyskuje prawdziwy adres do filmu.

Następnie musimy przekazać ten prawdziwy adres do mplayera: mplayer $(youtube-dl -g "$1").

Skrypt można zapisać pod dowolną nazwą i ukryć go, dopisując kropkę na początku jego nazwy.

Wygodnie jest zrobić do niego alias w pliku .bashrc. U mnie wygląda to, tak (vi ~/.bashrc): alias youtube='sh ~/.youtube.sh' Następnie należy przeładować basha, aby zmiany przyniosły efekt, wpisując w konsoli bash.

Skrypt działa w ten sposób, że po wywołaniu go w konsoli, należy wkleić, jako parametr, adres do filmu, który wcześniej kopiujemy z youtube, np. youtube http://www.youtube.com/watch?v=0RTm6o40cZU

youtube-dl pobiera film w najlepszej jakości ale posiada opcje wyboru jakości, w której chcemy ściągnąć dany film (więcej, w pomocy: youtube-dl -h). Można ten prosty skrypt rozbudować o dodatkowe opcje - zarówno te związane z youtube-dl (np. wybór jakości oglądanego filmu podawany, jako kolejny parametr), jak i z samym mplayerem. 

linux porady programowanie

Komentarze

0 nowych
GBM MODERATOR BLOGA  19 #1 04.02.2014 23:38

Ok, spoko, ale..

Następnym razem opisz coś bardziej przydatnego - nie widzę potrzeby puszczania filmiku z YT via MPlayer - może parser treści z logów, skrypt z użyciem crona? ;)

Jak opisujesz skrypt, opisz także wszystkie używany komendy/parametry/argumety etc. - to bardzo ważne dla początkujących :-)

Powodzenia :-)

Pzdr,
GBM

wojtekadams   18 #2 05.02.2014 19:46

Czyli tak naprawdę to nie jest YouTube w MPlayerze tylko wcześniej pobrany kontent (pewnie mp4) z Youtube i odtworzony w MP.

cyryllo   16 #3 05.02.2014 20:07

Dla jednych jest to zbędne rozwiązanie ale dla userów nie mających flasha zbawienie ;) Dzięki temu projektowy y-dl można oglądać filmiki w RPi z pulpitu ;)
Od jakiegoś czasu kibicuje mu :)

wojtekadams   18 #4 05.02.2014 20:52

@cyryllo
Na RPi nie używam Xów, więc nie wiem jak coś działa z "pulpitu", ale zawsze pozostaje HTML 5 (http://www.youtube.com/html5) i Youtube TV (https://www.youtube.com/tv)

dragonn   10 #5 05.02.2014 20:54

Dla tych którzy nie mają flash lub ja go nie trawią polecam skrypt vlctube - dużo lepsze, integruje się z przeglądarką przez co jest dużo lepsze niż taki wynalazek.

GBM MODERATOR BLOGA  19 #6 05.02.2014 22:37

a ja z zasady pierdzielę flasha (jak też jave) - do życia mi nie potrzebne i wystarczy mi to, że chrome domyślnie odtworzy mi na Debianie filmiki z YT, więc... da się żyć :)

@Cyryllo: Na rpi to też bez X'ów jadę - konsola FTW! :P

Pzdr,
GBM

ximian   1 #7 06.02.2014 09:10

@cyryllo
No i po co, skoro ci bez Flasha mogą użyć np. ViewTube i mieć dostęp do wielu serwisów?
Youtube działa(ł?) też z Gnashem

enedil   9 #8 06.02.2014 11:32

Mam dwie uwagi. Nie warto używać /bin/sh. Może w większości przypadków zadziała (zazwyczaj jest symlink do /bin/bash), ale na pewno są jeszcze osoby posiadające orginalnego SH. Może to, (choć nie musi) powodować błędy. Skrypt powinien wyglądać tak:

#!/bin/bash
mplayer $(youtube-dl -g "$1")

Druga uwaga - skoro chcesz robić prosty skrypcik, to po co każesz edytować ~/.bashrc edytorem vi? Tam powinien być nano, który jest łatwy w użyciu dla początkujących. Ktoś wykona vi ~/.bashrc i nie będzie wiedział jak opuścić edytor zapisując plik.

  #9 06.02.2014 11:51
kwpolska   5 #10 06.02.2014 17:56

alias+.sh można zastąpić (w bashrc):

youtube() {
mplayer $(youtube-dl -g "$1")
}

wojtekadams   18 #11 06.02.2014 19:12

Weźcie już przestańcie bo autor wpisu się wystraszy i już drugiej części nie będzie

entat   5 #12 06.02.2014 20:02

@wojtekadams spokojnie, kolejny już piszę. Staram się nie reagować na osobiste zaczepki użytkowników, bo to jest ich zdanie. Każdy ma swoje sposoby osiągania celów, więc z tym nie dyskutuję. Tak samo, jak nie dyskutuję z tym, co, kto używa do edycji plików a tym samym nikomu nie narzucam używania konkretnych edytorów. Tylko czasem trzeba czytać ze zrozumieniem...

Nie rozumiem też podejścia niektórych, że proste skrypty muszą być edytowane w prostych edytorach. Sorry ale ja nie zamieniam edytora w zależności od poziomu zaawansowania kodu.

@Anonim: "artykuł plagiat" powiadasz...

Naprawdę jest mi obojętne, że ktoś nie widzi sensu używania danego skryptu, w jaki sposób i w czym pisze swoje skrypty, czy wpisuje na początku /bin/sh czy /bin/bash. Dla mnie skrypt ma spełniać swoją rolę - ma działać. Wiadomo, że to samo można osiągnąć na wiele sposobów ale nie krytykujcie podejścia tych, którzy robią to inaczej niż Wy.

Pozdrawiam.

blind-oln   7 #13 06.02.2014 21:06

@dragonn
Nie mam Flasha. Obecnie wszystkie filmy na YouTube są dostępne w HTML5.

enedil   9 #14 06.02.2014 22:56

@entat

Właśnie o to chodzi, żeby działał. Gdy piszesz /bin/sh, to może nie działać.

Nie mam na myśli narzucania komukolwiek jakiegokolwiek edytora. Po prostu mówię, że nikt, kto wcześnie nie używał vi nie domyśli się, że w tryb edycji wejdzie klikając i, a co dopiero zapisze plik skrótem Esc + ZZ lub Esc + :wq.

  #15 10.02.2014 11:32

2 sprawy niekoniecznie na temat skryptu:

1) Czasem, a nawet często, znajomi podsyłają mi linki do jakichś bzdur na YT. W normalnej przeglądarce zerkam na kilka pierwszych sekund i od razu wyłączam, by nie tracić cennego czasu. Jak rozumiem ten youtube-dl zaciąga na dysk cały film? Osoby używające netu przez "sticka" i płacące za transfer stawia to w trudnej sytuacji.

2) HTML5 nie ratuje takich osób jak ja (niestety), gdyż wiele materiałów na YT jest tylko we flashu. Spróbujcie sobie bez flasha obejrzeć na YT np. grę Alexandrosa Tefarikisa Opus 8 w wersji niekoncertowej (swoją drogą bardzo dobry gitarzysta). Nie da się.