Ladda hem från Youtube
Tidigare har jag berättat hur man kan ladda hem från SVTPlay, och nu är det dags för Youtube. Jag tänker även berätta hur du kan göra för att konvertera en video till en ljudfil, genom att helt sonika lyfta över det i en egen fil.
Precis som tidigare, så är anledningen till att jag själv gör så här att jag kör ett 64-bitars OpenBSD, och då går det inte att använda Flash. Youtube kommer framöver att gå över till HTML5, och då slipper jag det här krånglet. Du kan pröva deras testversion detta här.
Det absolut enklaste sättet att tanka hem Youtube-videor är att använda sajten KeepVid.com. Det gör du så här:
- Gå till videon på Youtube.
- Kopiera adressen ur adressfältet.
- Klistra in adressen på KeepVid.com och klicka på Download-knappen.
- Högerklicka på länken som visas och välj Spara som…
Men detta fungerar inte felfritt! Dessutom är det skönt att kunna genomföra samma grej från ett terminalfönster eller i ett script, åtminstone för mig. Nu kommer jag först att berätta hur du laddar hem en video på det viset, och sedan hur man kan göra för att automatisera litet grand.
Ladda hem videon
Du behöver programmet youtube-dl, som i själva verket är ett Python-script. Se alltså till att ha Python installerat.
Windowsbrukare kan också använda det, och lätt övermäktiga instruktioner för hur scriptet kan installeras finns här.
På *nix-system måste youtube-dl.py dessutom vara körbar. Eftersom det är bra att hålla ordning på sin hemkatalog, så lägger vi scriptet i mappen ~/bin.
$ chmod +x youtube-dl.py
$ mkdir ~/bin
$ mv youtube-dl.py ~/bin/
Nu kollar vi att den går att köra:
$ youtube-dl.py
ksh: youtube-dl.py: not found
Hoppsan! Händer detta mumlar du följande trollformel, så är problemet omedelbart löst på obestämt tid.
$ echo 'export PATH=$PATH:$HOME/bin' >> .profile; export PATH=$PATH:$HOME/bin
Du kan även få permission denied när du kör filen. Lösningen är att köra scriptet så här istället:
$ python ~/bin/youtube-dl.py
Resten är lätt. Surfa till Youtube-sidan med videon, kopiera adressen, och kör scriptet med den enligt följande:
$ youtube-dl.py -bt "http://www.youtube.com/watch?v=yek2D4Kjwgc"
Glöm inte citat-tecknen! Eller snarare: Om du inte vet när de egentligen behövs, så använd dem alltid. (Just här behövs de egentligen inte.)
Youtube på volley
Har man inte Flash kan man inte se videon i webbläsaren. Om man bara vill slå en flukt på videon men inte tanka hem den, är det omständigt att behöva ladda hem den först.
Då kan man använda sig av samma lösning för nedladdning som ovan, men fånga videon »i luften« och spela upp den direkt istället! Så här skapar du ett script som fixar biffen:
$ cat << SLUT > ~/bin/youtube.sh
#!/bin/sh
PLAYER="mplayer"
YOUTUBE_DL="python ~/bin/youtube-dl.py"
for file; do $PLAYER $($YOUTUBE_DL -bg $file); done
SLUT
$ chmod +x ~/bin/youtube.sh
Ersätt "mplayer" med kommandot för den mediaspelare du föredrar.
Nu kan du spela upp videor direkt, busenkelt:
$ youtube.sh http://www.youtube.com/watch?v=yek2D4Kjwgc
Scriptet kan spela upp flera videor på rad om du klistrar in adresserna efter varandra.
Hur du plockar loss ljudet
Först och främst ska du se till att du har FFmpeg installerat.
Sedan måste du bestämma om du vill ha en mp3-fil eller en m4a-fil. Vill du ha ljudet i mp3-format, börja med att tanka hem videon så här:
$ youtube-dl.py -o dummy.flv http://www.youtube.com/watch?v=yek2D4Kjwgc
När nedladdningen är färdig så plockar du loss ljudspåret enligt det följande:
$ ffmpeg -vn -acodec copy -i dummy.flv ljudfil.mp3
Strax har du en fil som heter ljudfil.mp3.
Vill du istället ha ljudet i m4a-format, får du ändra parametrarna något.
$ youtube-dl.py -bo dummy.mp4 http://www.youtube.com/watch?v=yek2D4Kjwgc
$ ffmpeg -vn -acodec copy -i dummy.mp4 ljudfil.m4a
Och det var faktiskt det hela.
Ladda hem från SVTPlay
Uppdatering. Den här guiden är oerhört förlegad. Använd den inte. Använd version två av guiden i stället, eller ladda ned programmet H.VHS som kan hämta från SVT Play (och flera andra sajter) automatiskt.

Visste du att du med SVTPlay kan ladda hem program och spara dem på hårddisken? Jodå! Samma teknik går att använda för att se på programmen utan att ha installerat Flash, vilket jag själv inte har. Flash går nämligen inte att köra på ett 64-bitars OpenBSD.
För att kunna följa guiden här behöver du ett program som heter rtmpdump. Det finns inte bara till BSD- och Linux-system, utan även till Windows (och då ska du tanka hem zip-filen med en »Windows build«). Tyvärr kan jag inte bistå med några Windows-specifika instruktioner, men om någon kan bidra med detta vore jag glad.
Du behöver givetvis också en mediaspelare, och den jag använder i guiden är MPlayer.
Då sätter vi igång! Se till att du har programmen installerade och öppna ett terminalfönster.
Först och främst behöver du en länk till rtmp- eller rtmpe-strömmen för programmet. Detta gör du genom att högerklicka på länken för extern Flash-spelare och kopiera adressen:

Sedan kör du rtmpdump på denna, och klistrar in adressen istället för ADRESS nedan.
$ rtmpdump -o filnamn.flv -r "ADRESS"
Citattecknena bör vara med. För tillfället behövs de inte på SVTPlay-adresser, men det kan komma att förändras.
Nu är nedladdningen igång! Ibland når den inte ända fram till 100% utan stannar på 99,9%. Det gör inget.
Om den däremot stannar tidigare så kan du återuppta nedladdningen som följer:
$ rtmpdump -o filnamn.flv -r "ADRESS" --resume
När du laddat hem programmet kan det hända att det har »inbyggda« svarta ramar. Om du kör programmet i fullskärm blir resultatet irriterande litet. För att verkligen få fullskärm kan du ta bort ramarna genom följande procedur:
$ mplayer -vf cropdetect filnamn.flv
(Massor av text när MPlayer startar och analyserar filen.)
.
.
.
[CROP] Crop area: X: 639..0 Y: 359..0 (-vf crop=-624:-352:634:358).%
[CROP] Crop area: X: 639..0 Y: 359..0 (-vf crop=-624:-352:634:358).%
[CROP] Crop area: X: 639..0 Y: 359..0 (-vf crop=-624:-352:634:358).%
[CROP] Crop area: X: 639..0 Y: 359..0 (-vf crop=-624:-352:634:358).%
[CROP] Crop area: X: 639..0 Y: 359..0 (-vf crop=-624:-352:634:358).%
[CROP] Crop area: X: 639..0 Y: 359..0 (-vf crop=-624:-352:634:358).%
Nu har MPlayer automatiskt känt av vilket kommando som tar bort de svarta ramarna. Avbryt uppspelningen, och spela upp filmen ånyo med den parameter som MPlayer gav dig:
$ mplayer -vf crop=-624:-352:634:358 filnamn.flv
För att få fullskärm trycker du givetvis på f på tangentbordet.
Uppdatering 17 oktober: Martin Adlerborn har satt ihop en enkel och illustrerad instruktion, som visar hur man går till väga för att ladda hem i Windows. Så om du kör Windows, klicka här för att ladda hem PDF-dokumentet och sätt fart. Och tack till Martin. :-)
Spela DVD i MPlayer
Mediaspelaren mplayer kan vara ganska lurig att använda, utöver att bara spela upp video- eller ljudfiler. Att titta på DVD-skivor, direkt från skivan eller från en kopia eller .iso-fil på hårddisken, är inte alltid så lätt som man kunde önskat. Därför vill jag ge några snabba tips, genom att steg för steg bygga upp ett kommando i terminalen.
Om mplayer inte automatiskt känner av din dvd-läsare, så måste du berätta var den finns:
$ mplayer --dvd-device /dev/cd0c
Den skivläsare jag använder har uppenbarligen device-adressen /dev/cd0c. På andra system än OpenBSD numreras enheterna annorlunda.
Vill du istället spela upp en .iso-fil eller en kopierad DVD-katalog, anger du adressen till denna:
$ mplayer --dvd-device ~/skivor/dvd-1/
Nästa steg är att ange vilket kapitel du vill spela upp. Mplayer kan nämligen inte visa DVD-menyer, utan du är tvungen att välja spår direkt. Första filmen på skivan har talet 1, den andra har 2, och så vidare. Jag vill spela upp den andra filmen:
$ mplayer --dvd-device ~/skivor/dvd-1/ dvd://2
Kör du detta så spelas filmen upp. Men ytterligare något kan läggas till!
DVD-filmer är nämligen irriterande randiga. Tittar du bara noga så ser du det, särskilt när starkt färgade fält rör sig hastigt över skärmen. För att göra dig av med detta lägger du till ytterligare en parameter:
$ mplayer -vf-pre filmdint --dvd-device ~/skivor/dvd-1/ dvd://2
Ett sista tips: Om du vill hastigt och smärtfritt »ta loss« filmen från DVD:n och lägga den i en .avi-fil, fungerar det följande kommandot. Det använder sig av mplayers syskon mencoder, som anropas på liknande sätt, men skapar filmer istället för att spela upp dem.
$ mencoder -o ny-fil.avi -oac copy -ovc copy --dvd-device ~/skivor/dvd-1/ dvd://2
Filen ny-fil.avi som detta skapade är en direkt kopia av spåret på skivan. Därför spelas den med fördel upp utan ränder:
$ mplayer -vf-pre filmdint ny-fil.avi
Det var allt. Adjö!