YouTube-lataaja

Jussi Parkkinen INTINU13A6


Ohjelma mahdollistaa YouTube-videoiden lataamisen omalle koneelle halutussa formaatissa ja halutulla laadulla. Myös pelkästään äänen lataaminen erikseen onnistuu. Formaateista tarjolla on videon osalta mp4 ja mkv ja äänen osalta mp3 ja m4a. Videon video ja ääni ovat YouTuben palvelimella erillään toisistaan useissa eri muodoissa. Videoformaateissa mp4 muoto yhdistää palvelimelta tulevan video- ja ääniraidan mp4-videotiedostoon ja mkv-tiedostossa video ja ääni paketoidaan mkv-pakettiin. Ääniformaateissa m4a on palvelimelta suoraan tuleva äänimuoto ja mp3 on m4a-muodosta muunnettu versio.

Ohjelma käyttää videoiden lataamiseen youtube-dl.exe -ohjelmaa, joka on komentorivipohjainen useiden eri videopalveluiden videoiden lataamisen mahdollistava ohjelma. Lisäksi tarvitaan ffmpeg.exe videoiden lataamiseksi mp4-muodossa ja mp3-muotoisen äänen lataamista varten tarvitaan edellä mainittu ffmpeg.exe sekä ffprobe.exe.

[ Alkuun ]

Yksittäisen videon lataus

Käyttäjä syöttää haluamansa videon osoitteen url-kenttään ja painaa Lataa tiedot-nappia. Ohjelma hakee YouTuben palvelimelta videon esikatselukuvan, YouTube APIa käyttäen videon nimen ja keston sekä youtube-dl.exe:ä käyttäen, komentoriviltä lukien, saatavilla olevat formaatit, jotka suodatetaan sisältämään mp4-videot ja m4a-audiot. Jos käyttäjä on valinnut asetuksissa oletuslatauslaadun, se esivalitaan. Muuten esivalitaan paras videolaatu.

[ Alkuun ]

Soittolistan lataus

Käyttäjä syöttää haluamansa soittolistan osoitteen url-kenttään ja painaa Lataa tiedot-nappia. Ohjelma hakee YouTube APIa käyttäen soittolistan videot. Käyttäjä valitsee haluamansa videot. Jos käyttäjä on valinnut asetuksissa oletuslatauslaadun, se esivalitaan. Muuten käyttäjää pyydetään valitsemaan haluttu laatu.

[ Alkuun ]

Lataa useita videoita

Käyttäjä syöttää haluamansa videoiden osoitteet tekstikenttään osoite per rivi. Jos käyttäjä on valinnut asetuksissa oletuslatauslaadun, se esivalitaan. Muuten käyttäjää pyydetään valitsemaan haluttu laatu.

[ Alkuun ]

Nettiselain

Nettiselaimessa käyttäjä voi selata YouTubea (rajoitettu pääsy pelkästään YouTubeen). Nykyinen osoite siirtyy automaattisesti Lataa video- ja Lataa soittolista-välilehtien url-kenttiin. Jos käyttäjä klikkaa linkkiä CTRL-näppäin pohjassa, siirtyy linkin osoite Lataa useita videoita-välilehden tekstikenttään. Myös nykyisen sivun osoitteen voi siirtää Lataa useita videoita-välilehden tekstikenttään painamalla selaimen alla olevaa +-nappia.

[ Alkuun ]

Asetukset

Asetuksissa käyttäjä voi valita haluamansa video- ja audioformaatin, oletuslatausformaatin, estää videon koko soittolistan latauksen (eli jos video on osa soittolistaa ja urlissa on mukana soittolista) Lataa useita videoita-välilehdessä sekä valita oletuslatauskansion.

[ Alkuun ]

Yleiskatsaus

Nopea katsaus ohjelman eri toimintoihin ja välilehtiin. Eri osioiden toiminnoista kerrotaan lisää Toiminta-kappaleessa.

Ohjelman alkunäkymä. Kun ohjelma käynnistetään avautuu yksittäisen videon latauksen mahdollistava välilehti. Taustalla tapahtuu mm. seuraavaa:

Tallennuskansion valinta ikkuna.

Lataa soittolista-välilehti.

Lataa soittolista-välilehden laadunvalitsemisvalikko.

Lataa useita videoita-välilehti.

Lataa useita videoita-välilehden laadunvalitsemisvalikko.

Asetukset välilehti.

Asetukset-välilehden oletuslatauslaadun valitsemisvalikko.

Asetukset-välilehden oletuslatauskansion valitsemisikkuna.

Nettiselain.

[ Alkuun ]

Toiminta

Yksittäisen videon lataus

Käyttäjä syöttää videon osoitteen ja painaa Lataa tiedot-nappia

Käyttäjä syöttää haluamansa videon osoitteen tai videon 11 merkkisen ID:n url-kenttään ja painaa sitten Lataa tiedot-nappia. Ohjelma tarkistaa osoitteen/ID:n oikeellisuuden; jos osoite on virheellinen, ilmoitetaan siitä virheviestillä, muuten haetaan YouTuben palvelimelta videon ID:n perusteella videon esikatselukuva (http://img.youtube.com/vi/video ID/mqdefault.jpg) ylhäälle oikealle ketun paikalle, haetaan YouTube APIa ( https://www.googleapis.com/youtube/v3/videos?id=video ID&key=API-tunnus&part=snippet,contentDetails&fields=items(snippet(title),contentDetails(duration)) ) käyttäen videon otsikko ja kesto. Lisäksi käytetään youtube-dl.exeä, jotta saadaan selville, mitä laatuja videosta on tarjolla: suoritetaan ohjelma taustaprosessina komentorivillä ja annetaan parametreiksi -F videonURL --no-playlist, jolloin saadaan palautteena lista videon formaateista jotka sitten luetaan komentoriviltä ja siirretään pudotusvalikkoon.

 
Videon osoite oli hyväksyttävä?

Jos käyttäjä syöttää virheellisen osoitteen, ilmoitetaan siitä virheviestillä. Muuten siirrytään eteenpäin.

 
Onko video oikea?

Jos käyttäjän mielestä videon tiedot eivät ole oikeat (liitetty vahingossa väärää osoite), hän voi palata alkuun ja syöttää uuden osoitteen. Muuten jatketaan eteenpäin

 
Käyttäjä valitsee haluamansa laadun

Pudotusvalikosta käyttäjä voi valita haluamansa laadun. Jos käyttäjä on asetuksissa valinnut haluamansa oletuslaadun, ohjelma esivalitsee sen (tai lähimmän sitä, jos laatua ei ole saatavilla) automaattisesti. Jos oletuslaatua ei ole valittu, ohjelma esivalitsee parhaimman laadun automaattisesti. Listassa on lueteltuna videosta saatavilla olevat m4a- mp4-formaatit. Listassa ensimmäisenä on pelkät audiot ja sen jälkeen videot.

 
Käyttäjä painaa Lataa-nappia

Kun käyttäjä painaa Lataa-nappia, ohjelma suorittaa taustaprosessina komentorivillä halutussa latauskansiossa youtube-dl.exen käyttäen seuraavia parametrejä:

  • Audio mp3
    • osoite --no-playlist --restrict-filenames --ignore-errors -f laatuID --extract-audio --audio-format mp3 --audio-quality laatuID:n mukainen kbps
  • Audio m4a
    • osoite --no-playlist --restrict-filenames --ignore-errors -f laatuID
  • Video mp4
    • osoite --no-playlist --restrict-filenames --ignore-errors -f laatuID+141/laatuID+140
  • Video mkv
    • osoite --no-playlist --restrict-filenames --ignore-errors -f laatuID+141/laatuID+140 --merge-output-format mkv

 
Jatketaanko latausta?

Käyttäjä voi seurata latauksen etenemistä latauspalkista. Arvo latauspalkiin luetaan komentoriville tulevista youtube-dl.exen palautteista. Jos käyttäjä lataa pelkkää audiota, prosentit menevät yksi yhteen. Jos käyttäjä lataa taasen videota, joudutaan lataamaan erikseen sekä video että audio. Näin ollen kummankin painoarvo latauspalkkiin on 50 %.

Tässä vaiheessa käyttäjä voi myös peruutta videon latauksen painamalla Peruuta-nappia, jolloin youtube-dl.exe -prosessi lopetetaan.

 
 

Lataus valmis!

 

[ Alkuun ]

Soittolistan lataus

Käyttäjä syöttää soittolistan osoitteen ja painaa Lataa tiedot-nappia

Käyttäjä syöttää haluamansa soittolistan osoitteen tai soittolistan 34 merkkisen ID:n url-kenttään ja painaa sitten Lataa tiedot-nappia. Ohjelma tarkistaa osoitteen/ID:n oikeellisuuden; jos osoite on virheellinen, ilmoitetaan siitä virheviestillä, muuten haetaan YouTube APIa ( https://www.googleapis.com/youtube/v3/playlistItems?playlistId=soittolistan ID&key=API-tunnus&part=snippet,contentDetails&fields=items(snippet(title)) ) käyttäen soittolistan videoiden otsikot, jotka sitten siirretään videolistaan.

 
Videon osoite oli hyväksyttävä?

Jos käyttäjä syöttää virheellisen osoitteen, ilmoitetaan siitä virheviestillä. Muuten siirrytään eteenpäin.

 
Oliko soittolista oikea?

Jos käyttäjän mielestä listan videot eivät ole oikeat (liitetty vahingossa väärää osoite), hän voi palata alkuun ja syöttää uuden osoitteen. Muuten jatketaan eteenpäin

 
Käyttäjä valitsee haluamansa videot

Käyttäjä voi valita listasta haluamansa videot tai ladata koko listan.

 
Käyttäjä valitsee laadun

Pudotusvalikosta käyttäjä voi valita haluamansa laadun. Jos käyttäjä on asetuksissa valinnut haluamansa oletuslaadun, ohjelma esivalitsee sen (tai lähimmän sitä, jos laatua ei ole saatavilla) automaattisesti. Jos oletuslaatua ei ole valittu, ohjelma esivalitsee parhaimman laadun automaattisesti. Listassa on lueteltuna videosta saatavilla olevat m4a- mp4-formaatit. Listassa ensimmäisenä on pelkät audiot ja sen jälkeen videot.

 
Käyttäjä painaa lataa-nappia

Kun käyttäjä painaa Lataa-nappia, merkataan valituihin videoihin tilaksi Odottaa..., haetaan valittujen videoiden indeksinumerot listasta listaksi, haetaan cLatausparametrit-luokkaa käyttäen laatuparametrit valitun laadun perusteella (koska nyt kyseessä soittolista ja ei tiedetä, minkälaatuisia videot ovat, pitää muodostaa parametrit niin, että ensin yritetään käyttäjän haluamaa laatua ja jos sitä ei ole saatavilla, kokeillaan seuraavaksi parhainta laatua jne. 133+141/133+140/160+141/...) ja suoritetaan taustaprosessina komentorivillä halutussa latauskansiossa youtube-dl.exen käyttäen seuraavia parametrejä:

  • Audio mp3
    • osoite --playlist-items lista indeksinumeroista --restrict-filenames --ignore-errors -f laatuparametrit --extract-audio --audio-format mp3 --audio-quality laatuID:n mukainen kbps
  • Audio m4a
    • osoite --playlist-items lista indeksinumeroista --restrict-filenames --ignore-errors -f laatuparametrit
  • Video mp4
    • osoite --playlist-items lista indeksinumeroista --restrict-filenames --ignore-errors -f laatuparametrit
  • Video mkv
    • osoite --playlist-items lista indeksinumeroista --restrict-filenames --ignore-errors -f laatuparametrit --merge-output-format mkv

 
Jatketaanko latausta?

Käyttäjä voi seurata latauksen etenemistä latauspalkista. Arvo latauspalkiin luetaan komentoriville tulevista youtube-dl.exen palautteista. Jos käyttäjä lataa pelkkää audiota, prosentit menevät yksi yhteen/videoiden määrällä. Jos käyttäjä lataa taasen videota, joudutaan lataamaan erikseen sekä video että audio. Näin ollen kummankin painoarvo latauspalkkiin on 50 %/videoiden määrällä.

Tässä vaiheessa käyttäjä voi myös peruutta videon latauksen painamalla Peruuta-nappia, jolloin youtube-dl.exe -prosessi lopetetaan.

 
 

Kun video on latautunut, merkitään se valmiiksi.

 
 

Kaikki videot ladattu!

 

[ Alkuun ]

Usean videon lataus

Käyttäjä syöttää haluamansa osoitteet

Käyttäjä syöttää haluamansa osoitteet tekstikenttään.

 
Käyttäjä valitsee haluamansa laadun

Pudotusvalikosta käyttäjä voi valita haluamansa laadun. Jos käyttäjä on asetuksissa valinnut haluamansa oletuslaadun, ohjelma esivalitsee sen (tai lähimmän sitä, jos laatua ei ole saatavilla) automaattisesti. Jos oletuslaatua ei ole valittu, ohjelma esivalitsee parhaimman laadun automaattisesti. Listassa on lueteltuna videosta saatavilla olevat m4a- mp4-formaatit. Listassa ensimmäisenä on pelkät audiot ja sen jälkeen videot.

 
Käyttäjä painaa Lataa-nappia

Kun käyttäjä painaa Lataa-nappia, tallennetaan osoitteet bin-kansiossa olevaan videos-tiedostoon, haetaan cLatausparametrit-luokkaa käyttäen laatuparametrit valitun laadun perusteella (koska nyt kyseessä monta eri videota ja ei tiedetä, minkälaatuisia videot ovat, pitää muodostaa parametrit niin, että ensin yritetään käyttäjän haluamaa laatua ja jos sitä ei ole saatavilla, kokeillaan seuraavaksi parhainta laatua jne. 133+141/133+140/160+141/...) ja suoritetaan taustaprosessina komentorivillä halutussa latauskansiossa youtube-dl.exen käyttäen seuraavia parametrejä:

  • Audio mp3
    • -a videos --restrict-filenames --ignore-errors -f laatuparametrit --extract-audio --audio-format mp3 --audio-quality laatuID:n mukainen kbps
  • Audio m4a
    • -a videos --restrict-filenames --ignore-errors -f laatuparametrit
  • Video mp4
    • -a videos --restrict-filenames --ignore-errors -f laatuparametrit
  • Video mkv
    • -a videos --restrict-filenames --ignore-errors -f laatuparametrit --merge-output-format mkv
Loppuun lisätään vielä --no-playlist, jos käyttäjä on määritellyt asetuksissa, että ei halua ladata videon koko soittolistaa; eli jos videon on osa jotakin soittolistaa, ladataan pelkästään tuo yksi video, ei koko listaa.

 
Jatketaanko latausta?

Käyttäjä voi seurata latausten edistymistä oikealla olevasta logi-ikkunasta, johon komentoriviltä tulevat palautteet siirretään.

Tässä vaiheessa käyttäjä voi myös peruutta videon latauksen painamalla Peruuta-nappia, jolloin youtube-dl.exe -prosessi lopetetaan.

 
 

Lataus valmis!

 

[ Alkuun ]

Asetukset

Asetuksissa käyttäjä voi valita haluamansa latausformaatit videolle ja äänelle. Tarjolla mp4- ja mkv-videomuodot ja äänistä m4a ja mp3. Näistä kerrottiin enemmän tämän oppaan ensimmäisessä kappaleessa. Halutun oletuslaadun voi myös valita (seuraava) kuva ja valinnan, ladataanko koko soittolistaa usean videon latauksessa sekä tietysti oletuslatauskansion

Valittavissa olevat video-laadut.

Latauskansion valinta.

Kun käyttäjä painaa Tallenna-nappia, kutsutaan cAsetukset-luokan metodia joka tallentaa asetukset XML-muodossa bin/settings.xml -tiedostoon.

[ Alkuun ]

Nettiselain

Kun käyttäjä painaa Avaa nettiselain-labelia oikeassa reunassa, avautuu selain, jolla voi selata YouTubea (muualle pääsy estetty).

Nykyinen osoite siirtyy automaattisesti Lataa video- ja Lataa soittolista-välilehtien url-kenttiin. Jos käyttäjä klikkaa linkkiä CTRL-näppäin pohjassa, siirtyy linkin osoite Lataa useita videoita-välilehden tekstikenttään. Myös nykyisen sivun osoitteen voi siirtää Lataa useita videoita-välilehden tekstikenttään painamalla selaimen alla olevaa +-nappia.

Ohjelman oikealle puolella avautuu selain ja oikealla alhaalla on taakse- ja eteenpäinnapit, +-nappi nykyisen osoitteen lisäämiksi Lataa useita videoita-välilehden tekstikenttään, info-nappi apua antamassa ja selaimen laajentamisnappi (kuva jäljempänä).

Viemellä hiiren info-napin päälle, näytetään nettiselaimen käytön ohjeet.

Selaimen laajentamisnappi.

Selaimen laajentamisnappia painamalla ohjelmaikkunaa kasvatetaan pystysuunnassa ja pääohjelma piilotetaan.

[ Alkuun ]