Portál AbcLinuxu, 1. května 2025 19:00
Také jsem zahlídnul info o tom, že Twibright Labs udělal "přehrávač" youtube videí do konzole.
Twibright Labs "beru", používám Links2, obdivuju Ronju, ale když jsem viděl ten skriptík na přehrávání videí z youtube, tak jsem se zhrozil. Ono to má 1036 řádků v pythonu!!! Ano, je tam hodně komentářů, ale i tak. Na začátku se importuje 14 knihoven (nebo čeho, nejsem pythonista). Tak jsem si řekl, že hodím odkaz do mého blogu na svůj skript. Ale sakra, nemůžu ho najít. Asi jsem ho do blogu ani nedával, protože se mi zdál trapně jednoduchý. No ale pro ty, kterým se ten od Twibright Labs zdá taky zbytečně složitý, přidávám do svojí sbírky stahovacích skriptíků i ten na youtube.
Použití by mělo být jednoduché, prostě down-youtube-video URL/CODE
...
a na STDOUT to pošle URL videa, které pak lze stáhnout wgetem,
curlem nebo přímo přehrát v mplayeru.
Někdy bych chtěl dodělat možnost stáhnutí videa v lepším rozlišení, když je k dispozici. Když jsme to hledal naposled, nějak jsem to správné URL nemohl najít.
Update 2010/12/23: Script aktualizovanán podle změn Youtube. Přidána podpora výběru formátu videa.
#!/bin/bash defaultfmtlist="18 5 22 37 38 34 35" verb=0 function usage() { cat <<HelpEnd Usage: $0 [ -v ] [ -v ] [ -v ] [ -f fmt,fmt ] {URL|video ID} ... -f format-list ... download specified format, default priority is $defaultfmtlist see http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs HelpEnd } function urlcleanup() { perl -pe 's,\\,,g;s/%(..)/chr(hex($1))/ge;' } function msg() { if [ $# -ge 2 ] && [ $verb -ge $1 ] ; then printf "%$((${1}*2))s%s\n" " " "$2" fi } if [ $# -eq 0 ]; then usage else while [ $# -gt 0 ];do case "$1" in "-v" ) shift ; verb=$(($verb+1)) ;; "-f" ) shift ; if [ $# -lt 2 ] ; then echo "Options -f requires a value" ; usage ; exit 1 ; else defaultfmtlist="$2" ; shift ; fi ;; * ) p="$1" shift if echo "$p" | grep -qE '^http';then url="$p" else url="http://www.youtube.com/watch?v=$p" fi msg 2 "Getting data from URL $url" vdata="$( wget -q -O - "$url" \ | perl -ne ' print "$u\n$i\n" if ($u)=(/PLAYER_CONFIG.*"fmt_url_map"\s*:\s*"([^"]+)"/) and ($i)=(/PLAYER_CONFIG.*"video_id"\s*:\s*"([^"]+)"/); ' )" lurl="$( echo "$vdata" | sed -n '1p;' )" vid="$( echo "$vdata" | sed -n '2p;' )" selurl="" while [ -z "$selurl" ] ; do for rfmt in $defaultfmtlist ; do msg 3 "Looking for URL in format $rftm" selurl="$( echo "$lurl" | tr ',' '\n' | grep -E "^$rfmt\|" | cut -f2- -d'|' | urlcleanup )" ffmt="$rfmt" if [ -n "$selurl" ] ; then break 2 ; fi done msg 3 "Preferred format not found, using the first one available" selurl="$( echo "$lurl" | tr ',' '\n' | head -n1 | cut -f2- -d'|' | urlcleanup )" ffmt="$( echo "$lurl" | tr ',' '\n' | head -n1 | cut -f1 -d'|' )" msg 4 "Found format $ffmt" done msg 1 "Downloading video $vid to file youtube-video-${vid}-${ffmt} from URL" wget -c -O "youtube-video-${vid}-${ffmt}" "$selurl" ;; esac done fi
Tiskni
Sdílej:
ja na stahovani pouzival programek clive, ten umi zatim jenom HQ videa na HD mam plug-in do FF "Download YouTube Videos in HD and MP4"
mplayer `downyoutube http://www.youtube.com/watch?v=8WaMGIzYvzg`
No, dalo by se jeste mozna neco jako down-youtube-video URL1 URL2 URL3 | mplayer -playlist -
, ale s tim si nejsem jistej. Jinak urcite by to slo tak, ze ten vystup z down-youtube-video ulozis do souboru, a pak bud prehravas jako playlist nebo wget -i FILE
stahnes. Pripadne jde jeste pouzit down-youtube-video URL1 URL2 URL3 | wget -i -
. Prave proto jsem tam ja necpal mplayer primo, protoze takhle si muze kazdej udelat co chce, treba ten playlist otevrit i v necem jinym.
Proc jde skakat, to fakt netusim, mozna je to nejaka nova featura mplayeru, nebo to proste mplayer pri prehravanym video souboru dela normalne, jen to nejde pri klasickym streamu. Ale to jsou moje dohady, presne to fakt netusim.
Na to HD mrknu, hodilo by se.
Tak z toho URL http://www.youtube.com/watch?v=8WaMGIzYvzg
to po pridani &fmt=18
udela MP4. Tipuju, ze to bude spis neco jako FLV (bez fmt) a original (s fmt=18). Ale mrknu na to. Nektery veci by v lepsi kvalite byly fakt dobry.
Stahnul jsem obe videa a tady je, co o tom rika mplayer
vid-a: ISO Media, MPEG v4 system, version 2 VIDEO: [avc1] 480x272 24bpp 25.000 fps 0.0 kbps ( 0.0 kbyte/s) vid-b: Macromedia Flash Video VIDEO: [FLV1] 320x240 0bpp 25.000 fps 331.8 kbps (40.5 kbyte/s)
Tak to je taky skvely, samozrejme radsi stahnu puvodni video, nez podruhe prekonvertovane do FLV. Jinak to video, ktere jsem tim skriptem stahoval, zrovna v HD verzi ani neni k dispozici, takze zkuste nejake jine, kde je ten symbol HD pod videem.
Jinak se pripojuju k tomu prvnimu komentari, ten plugin pro FF mam taky a je fakt nejlepsi, co jsem zatim pro FF testoval, naprosto jednoduche pouzivani a funguje dobre.
No, mrknul jsem ted na to, zkusil jsem jeste par dalsich hodnot a vypada to jenom na format, ve kterym to youtube posle:
vid-base: Macromedia Flash Video vid-fmt-13: ISO Media, MPEG v4 system, 3GPP vid-fmt-17: ISO Media, MPEG v4 system, version 2 vid-fmt-18: ISO Media, MPEG v4 system, version 2 vid-fmt-34: Macromedia Flash Video vid-fmt-5: Macromedia Flash Video
Ale samozrejme diky tomu MP4 to muze byt kvalitnejsi obraz i zvuk, nevim.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.