yle-dl

Linux.fista
Versio hetkellä 6. elokuuta 2017 kello 14.48 – tehnyt Lahtis (keskustelu | muokkaukset) (→‎Asennus)
Siirry navigaatioon Siirry hakuun


yle-dl
Käyttöliittymä teksti
Lisenssi GPLv3
Kotisivu aajanki.github.io/yle-dl

yle-dl (aikaisemmalta nimeltään RTMPDump-YLE) on komentoriviohjelma video- ja äänitiedostojen lataamiseen Yle Areenasta ja Elävästä arkistosta. TV- ja radio-ohjelmien lisäksi yle-dl voi ladata Areenan nettiradioita ja suoria lähetyksiä. Se toimii Linuxilla, Windowsilla ja Mac OS X:llä.

yle-dl käytössä.
Ohjetekstiä.

yle-dl perustuu Andrej Stepanchukin RTMPDump-ohjelmaan, joka puolestaan perustuu Team Boxeen RTMPDumper-ohjelmakoodeihin. JSON-viestien jäsentämiseen käytetään json-c-kirjastoa.

Ylen ohjelmien lataaminen on sallittua vain yksityiseen käyttöön.

Asennus lähdekoodeista

Riippuvuudet

  • python (2.6 tai uudempi)
  • pycrypto
  • PHP-tulkki
  • PHP-laajennukset: bcmath, curl, mcrypt ja SimpleXML

Areenan radio-ohjelmien lataamiseen tarvitaan lisäksi:

  • rtmpdump (2.4 tai uudempi)

Ota PHP-laajennukset käyttöön lisäämällä seuraavanlaiset rivit oikeine polkuineen php.ini-tiedostoon (https://secure.php.net/manual/en/configuration.file.php):

extension=/polku/curl.so
extension=/polku/mcrypt.so

Asennus

Ohjelman voi asentaa myös python-pipin avulla.

Komennot, jotka alkavat $-merkillä suoritetaan tavallisena käyttäjänä ja komennot, jotka alkavat #-merkillä suoritetaan pääkäyttäjänä. Katso myös su, sudo ja doas.
# pip install yle-dl

Asennus lähdekoodeista

Ohjelman lähdekoodipaketin voi ladata sen kotisivuilta. Ladattu lähdekoodi täytyy tämän jälkeen kääntää.

Debianissa ja Ubuntussa käännöstyökalut ja tarvittavat kirjastot löytyvät paketeista build-essential, libssl-dev, libjson0-dev ja python-dev.

Ensin puretaan paketti komennolla

tar xf paketinnimi

Tämän jälkeen siirrytään paketista purettuun hakemistoon komennon cd avulla ja annetaan komennot make joka kääntää ohjelman ja make install asentaa ohjelman.

sudo make install

Asennus Debian unstable (toukokuu 2016) ja Ubuntu 16.04

sudo apt-get install rtmpdump python python-crypto php-cli php-curl php-mcrypt php-xml php-bcmath
sudo phpenmod mcrypt
sudo make install

Asennus Debian 8 ja Ubuntu 15.10 ja niitä vanhemmissa versioissa.

sudo apt-get install rtmpdump python python-crypto php5-cli php5-curl php5-mcrypt
sudo php5enmod mcrypt
sudo make install

Mikäli viimeinen komento tuottaa virheilmoituksen (sudon käyttöön ei ole oikeuksia), voi sen yrittää antaa muodossa

su -c "make install"

Jos make-komento antaa virheilmoituksen "/bin/sh: g++: not found" (tai vastaavan) puuttuu järjestelmästä kääntämiseen tarvittavia työkaluja. Yleensä ne saa asennettua asentamalla asentamalla (ainakin) paketit make ja gcc-c++ (tai jos sitä ei löydy, niin paketin g++ tai gcc). Debian-pohjaisissa jakeluissa (mm. Ubuntu) niiden asennus onnistuu myös asentamalla paketti build-essential. Lisätietoja löytyy artikkelista Kääntäminen.

Asennuksen voi tehdä myös käyttäen Checkinstall-ohjelmaa, joka on tarkoitettu helpottamaan suoraan lähdekoodista asennettujen ohjelmapakettien poistamista sekä estämään paketinhallintajärjestelmän sotkeutuminen asennettaessa ohjelmia sen ulkopuolelta.

make
checkinstall

Käyttö

yle-dl on apuskripti, joka hakee videon tiedot Ylen sivuilta ja huolehtii rtmpdump-ylen käynnistämisestä oikeilla parametreilla. Ohjelman käyttö onnistuu seuraavan tyyppisellä komennolla:

yle-dl yle_video_sivun_osoite [rtmpdump-valitsimet]

Esimerkiksi:

yle-dl http://areena.yle.fi/video/261405

Valitsin -o määrittelee kohdetiedoston nimen.

yle-dl http://areena.yle.fi/video/261405 -o /polku/hakemistoon/video.flv

Videon voi putkittaa suoraan Mplayeriin seuraavasti:

yle-dl http://areena.yle.fi/video/261405 -o - | mplayer -

Muita valitsimia:

  • --resume - jatkaa aikaisemmin keskeytynyttä latausta
  • -o - kohdetiedosto
  • --ylePassi YLEPassi-eväste - eväste
  • --live - Suoran YleX lähetyksen lataaminen
  • --help - pikaohje


Tiedostomuotojen muunnokset

Areenan video- ja äänitallenteet lähetetään FLV-säiliömuodossa, jota harva mediasoitin tukee suoraan. FLV:n sisällä on kuitenkin H.264-videoraita ja AAC-ääniraita, joita useimmat soittimet osaavat purkaa, kun säiliömuodon vain vaihtaa MP4:ksi. Pelkkää ääntä sisältävissä radiotallenteissa (.fla-pääte) on AAC:n sijaan MP3-ääniraita, joka toimii FLV:stä ulos purettuna sellaisenaan.

Tässä kuvatut muunnokset ovat häviöttömiä, eli niillä ei ole mitään vaikutusta videon ja äänen laatuun.

Videotallenteet MP4-muotoon

ffmpeg on kätevä komentorivityökalu, joka osaa mm. lukea FLV-säiliön sisällön ja siirtää sen sellaisenaan MP4-säiliöön:

ffmpeg -i tiedosto.flv -vcodec copy -acodec copy tiedosto.mp4

Korvaa tiedosto.flv yle-dl:n tallentaman tiedoston nimellä ja tiedosto.mp4 haluamallasi mp4-tiedoston nimellä. Voit käyttää myös tiedoston koko polkua: /polku/hakemistoon/tiedosto.flv

Äänitallenteet MP3-muotoon

Olettaen että FLV tai FLA -tiedostossa on MP3-ääniraita, sen voi kopioida ulos säiliöstä ffmpegillä:

ffmpeg -i tiedosto.fla -acodec copy tiedosto.mp3

Saman voi tehdä myös MPlayer-ohjelmalla:

mplayer -dumpaudio tiedosto.fla -dumpfile tiedosto.mp3

Tiedoston sisällön tutkiminen

Jos et ole varma mediatiedoston säiliömuodosta ja sen sisältämien video- ja ääniraitojen formaateista, voit tutkia tiedostoa ffmpegillä:

ffmpeg -i tiedosto.flv

Se kertoo Areenasta ladatusta videosta seuraavaa:

Input #0, flv, from 'Uusi päivä (S): Osa 143-2012-01-17-20:00:00.flv':
 Metadata:
   duration        : 1668
   moovPosition    : 28
   width           : 640
   height          : 360
   videocodecid    : avc1
   audiocodecid    : mp4a
   avcprofile      : 77
   avclevel        : 30
   aacaot          : 2
   videoframerate  : 25
   audiosamplerate : 48000
   audiochannels   : 2
 Duration: 00:27:47.54, start: 0.000000, bitrate: N/A
   Stream #0.0: Video: h264 (Main), yuv420p, 640x360 [PAR 1:1 DAR 16:9], 25 tbr, 1k tbn, 50 tbc
   Stream #0.1: Audio: aac, 48000 Hz, stereo, s16

Jakelukohtainen asennus

Fedora, RHEL, CentOS

yle-dl on saatavilla RPM Fusionista Fedoralle ja Red Hat Enterprise Linuxille ja sen kanssa yhteensopiville jakeluille, kuten CentOSille.

Jos RPM Fusion on otettu käyttöön, yle-dl:n asentaminen onnistuu komennolla

 su -c "yum install yle-dl"

Katso myös

Aiheesta muualla