Apuohjelma videoiden lataamiseen Yle Areenasta
Copyright (C) 2010-2017 Antti Ajanki, antti.ajanki@iki.fi
Ohjelmistolisenssi: GPLv3
Kotisivu: https://aajanki.github.com/yle-dl/
Lähdekoodi: https://github.com/aajanki/yle-dl

yle-dl on apuohjelma tiedostojen lataamiseen Yle Areenasta
(https://areena.yle.fi), Elävästä arkistosta
(http://yle.fi/aihe/elava-arkisto) ja Ylen uutissivustolta
(http://yle.fi/uutiset/).

Asennus
-------

### 1. 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

### 2. Asenna yle-dl ###

sudo make install

Asennus Debian unstablessa (toukokuu 2016)/Ubuntu 16.04:ssa
-----------------------------------------------------------

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 Jessie (8.5)/Ubuntu 15.10 ja vanhemmat
-----------------------------------------------------

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

sudo make install

Asennus Mac OS X:ssä
--------------------

### 1. Riippuvuudet ###

Asenna PHP-tulkki: https://secure.php.net/manual/en/install.macosx.php

brew install --HEAD rtmpdump
brew install homebrew/php/php55-mcrypt
pip install pycrypto

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

### 2. Asenna yle-dl ###

make install

Asennus, kun lataukseen käytetään youtube-dl:ää
-----------------------------------------------

Oletuksena Areenan ohjelmien lataamiseen käytetään paketin mukana
tulevaa AdobeHDS.php-skriptiä. Jos AdobeHDS.php ei jostain syystä
toimi, on mahdollista ladata videoita youtube-dl:llä. yle-dl siirtyy
automaattisesti käyttämään youtube-dl:ää, jos se on asennettu eikä
AdobeHDS.php toimi.

Suorita asennus kuten yllä, mutta jätä PHP-tulkki ja PHP-kirjastot
pois. Asenna lisäksi Python 2 -versio youtube-dl-moduulista:

* Debian/Ubuntu: `pip install --upgrade youtube_dl`
* Mac OS X: `brew install youtube-dl`
* Muut käyttöjärjestelmät: `pip install --upgrade youtube_dl`

Vanhojen versioden poistaminen
------------------------------

Alkaen versiosta 1.99.9 yle-dl ei enää tarvitse Ylen palvelimia varten
muunneltua kopiota rtmpdump-ohjelmasta. Aikaisemman yle-dl-version
mukana asennetun rtmpdumpin ja pluginin voi poistaa komentamalla
pääkäyttäjänä "make uninstall-old-rtmpdump".

Valmiit asennuspaketit
----------------------

Katso lista saatavilla olevista asennuspaketeista osoitteesta
https://aajanki.github.io/yle-dl/

RPM-paketointi:

Tiedoston contrib/yle-dl.spec avulla on mahdollista luoda RPM-paketti
Fedoraan.

Käyttö
------

yle-dl [valitsimet] URL

tai

yle-dl [valitsimet] -i tiedosto


Korvaa URL webbi-osoitteella, missä ladatavaa ohjelmaa voisi katsoa
nettiselaimen kautta. URL voi olla joko Yle Areenan tai Elävän
arkiston osoite.

Valitsimet:

-o filename     Tallenna striimi nimettyyn tiedostoon
-i filename     Lue käsiteltävät URLit tiedostosta, yksi URL per rivi
--latestepisode Lataa viimeisimmän jakson sivulta
--showurl       Tulostaa videon URL, ei lataa tiedostoa
--showtitle     Tulostaa ohjelman nimen, ei lataa tiedostoa
--vfat          Tuota Windows-yhteensopivia tiedoston nimiä
--audiolang lan Lataa ääniraita tietyllä kielellä jos saatavilla
                lan = fin (oletus) tai swe
--sublang lan   Lataa tekstitykset annetulla kielellä (Yle Areena)
                lan = fin, swe, smi, none or all (oletus)
--maxbitrate br Rajoita ladattavan striimin bittinopeutta (kB/s)
--rtmpdump path Polku rtmpdump-ohjelmaan
--adobehds cmd  Aseta komento AdobeHDS.php-skriptin kutsumiseen
--postprocess c Suorita ohjelma c onnistuneen latauksen jälkeen.
                Ohjelmalle c annetaan parametriksi ladatun FLV tiedoston nimi
		ja mahdollisten tekstitystiedostojen nimet.
--proxy uri     Käytä SOCKS-proxyä striimin metadatan lataamiseen
                Esimerkki --proxy socks5://localhost:7777
--destdir dir   Aseta hakemisto mihin tiedostot tallennetaan
--pipe          Ohjaa striimi stdout:iin, esim. "yle-dl --pipe URL | vlc -"
--backend vals  Järjestys, jossa lataajia kokeillaan kunnes jokin niistä
                onnistuu lataamaan ohjelman. Voi sisältää useita arvoja
                pilkuilla eroteltuina. Mahdolliset arvot:
                  adobehdsphp - lataa käyttäen AdobeHDS.php:ta
                  youtubedl - lataa HDS-striimi käyttäen youtube-dl:ää
-V, --verbose   Tulosta enemmän tietoja latauksen etenemisestä

Muut valitsimet välitetään rtmpdump:lle, jos ladataan RTMP-tyyppistä
striimiä. Luettelon mahdollisista valitsimista (englanniksi) näkee
komentamalla

yle-dl --help

Jotta yhteyden muodostaminen onnistuisi, palomuurin täytyy sallia
ulospäin menevä liikenne porteissa 80 ja 1935.

Esimerkkejä
-----------

* Areenan ohjelman lataaminen automaattisesti nimettävään tiedostoon:

  yle-dl https://areena.yle.fi/1-1544491

* Käytä youtube-dl-lataajaa (AdobeHDS.php:n sijaan):

  yle-dl --backend youtubedl https://areena.yle.fi/1-1544491

* Elävän arkiston ohjelman kaikkien jaksojen lataaminen:

  yle-dl http://yle.fi/aihe/artikkeli/2010/10/28/studio-julmahuvi-roudasta-rospuuttoon

* Ohjelman lataaminen tiedostoon uutiset.flv:

  yle-dl https://areena.yle.fi/1-1544491 -o uutiset.flv

* Keskeytyneen latauksen jatkaminen tiedostoon uutiset.flv:

  yle-dl https://areena.yle.fi/1-1544491 -o uutiset.flv --resume

* Lataa uusimmat uutiset

  yle-dl --latestepisode https://areena.yle.fi/?q=uutiset

* Toistaminen suoraan videotoistimessa:

  yle-dl --pipe https://areena.yle.fi/1-2409251 | mplayer -cache 1024 -

* Ladatun tiedoston jatkokäsitteleminen skriptillä (katso esimerkki
  scripts/muxmp4-tiedostossa):

  yle-dl --postprocess scripts/muxmp4 https://areena.yle.fi/1-1864726
