Onko ohjelman sisällä jokin itsepäivitysnappula tai jopa päivittyy automaattisesti, vai pitääkö kuitenkin hakea uusi asennuspaketti itse ja asentaa se päälle?Laturi osaa kyllä päivittää itsensä, eli siis "päälle".
Follow along with the video below to see how to install our site as a web app on your home screen.
Huomio: This feature may not be available in some browsers.
Onko ohjelman sisällä jokin itsepäivitysnappula tai jopa päivittyy automaattisesti, vai pitääkö kuitenkin hakea uusi asennuspaketti itse ja asentaa se päälle?Laturi osaa kyllä päivittää itsensä, eli siis "päälle".
Kyllä sinun täytyy itse imuroida uuden version asennuspaketti/ohjelma ja käynnistää se, jolloin se päivittää koneessasi jo olevan laturin tai asentaa kokonaan uuden. Mitään puoli- tai täysautomaattista verkosta päivittämistä ei ole.Onko ohjelman sisällä jokin itsepäivitysnappula tai jopa päivittyy automaattisesti, vai pitääkö kuitenkin hakea uusi asennuspaketti itse ja asentaa se päälle?
Hyvä, halusin vain tarkistaa että juuri tuota tarkoitettiin ohjelman päivittämisellä, kun se ns. "päivittää itsensä".Kyllä sinun täytyy itse imuroida uuden version asennuspaketti/ohjelma ja käynnistää se, jolloin se päivittää koneessasi jo olevan laturin tai asentaa kokonaan uuden. Mitään puoli- tai täysautomaattista verkosta päivittämistä ei ole.
Laturin nimeämiskäytäntö on sellainen kuin on. En ole aikeissa tehdä siitä säädettävää, koska ohjelma on tehty omaan käyttöön ja olen sen jo säätänyt mieleisekseni. Nimissä on kyllä kaikki samat tiedot kuin FlickFetchilläkin, tiiviimmässä muodossa, lukuunottamatta päiväystä, joka oletusarvoisesti on harvinaisen epäkiinnnostava, päivä jolloin ohjelma on lisätty Areenaan. Ketä se kiinnostaa? Imurointipäivä on tiedostoissa itsessään, mutta ohjelman ensiesityksen päivämäärää tai elokuvan valmistusvuotta ei tietenkään löydy mistään.Toivumuksena esitän että jos ja kun energiaa riittää niin olisiko mahdollista uudistaa sarjojen nimeämistä tyyliin FlickFetch? Esim. näin "Riistametsällä - 2024-03-27 - Kausi 13 - Jakso 01 - Louhikala". Helpottaisi aika paljon sarjojen jaksojen nimeämistä
Toki tuo päiväys on turha mutta muuten tuo FFn nimeäminen on paljon selvempi. Harmi että FFn kehitys tuntuu pysähtyneen toistaiseksi.Laturin nimeämiskäytäntö on sellainen kuin on. En ole aikeissa tehdä siitä säädettävää, koska ohjelma on tehty omaan käyttöön ja olen sen jo säätänyt mieleisekseni. Nimissä on kyllä kaikki samat tiedot kuin FlickFetchilläkin, tiiviimmässä muodossa, lukuunottamatta päiväystä, joka oletusarvoisesti on harvinaisen epäkiinnnostava, päivä jolloin ohjelma on lisätty Areenaan. Ketä se kiinnostaa? Imurointipäivä on tiedostoissa itsessään, mutta ohjelman ensiesityksen päivämäärää tai elokuvan valmistusvuotta ei tietenkään löydy mistään.
Elokuvan valmistusvuosi olisi siinä Areenasta ladattavassa tekstitiedostossa lopussa. Mutta toki jos kaiken muun saa jostain metatietolistasta haettua, niin voi olla turha viritys.Laturin nimeämiskäytäntö on sellainen kuin on. En ole aikeissa tehdä siitä säädettävää, koska ohjelma on tehty omaan käyttöön ja olen sen jo säätänyt mieleisekseni. Nimissä on kyllä kaikki samat tiedot kuin FlickFetchilläkin, tiiviimmässä muodossa, lukuunottamatta päiväystä, joka oletusarvoisesti on harvinaisen epäkiinnnostava, päivä jolloin ohjelma on lisätty Areenaan. Ketä se kiinnostaa? Imurointipäivä on tiedostoissa itsessään, mutta ohjelman ensiesityksen päivämäärää tai elokuvan valmistusvuotta ei tietenkään löydy mistään.
Sinä siis haluaisit, että sarjan nimen ja kauden numeron välissä olisi piste. Ja olisihan se muodollisesti perusteltavissa. Pistettä ei kuitenkaan ole, koska lopputulos on näin siistimpi eikä sekaannuksen vaaraa ole. Kestän kyllä sen, että mahdollisesti numeroon päättyvän sarjan nimen ja sitä seuraavan kauden numeron välissä on vain välilyönti.Laturissa videoiden nimet on esitetty kompaktissa muodossa sisältäen kaikki olennaiset tiedot. Yhden pisteen silti lisäisin. Esim.
"La Promesa - Salaisuuksien kartano 2 (76). Uhkauksia"
Entä jos sarjan nimi on "Luottomies 2"? Parempi olisi esim.
"La Promesa - Salaisuuksien kartano. 2 (76). Uhkauksia"
Kiitos virheilmoituksesta. On jäänyt huomaamatta, koska sillä levyllä, jolle minä lataukset ohjaan, on tälläkin hetkellä pari sataa gigaa tilaa. Ja varastolevylläkin jokunen tera. En tajua miksi joku vieläkin pihtailee levytilassa, tai pilaa levynsä jakamalla sen pikkiriikkisiin partitioihin. Sitäpaitsi Laturia on tarkoitus käyttää niin, että lataukset ohjataan nopealle levylle jolla on varmasti tilaa, ja siirretään sitten jälkikäteen jonnekin muualle. Minulla Videos-kansio on siis vain työtilaa, jonka voi koska tahansa tyhjentää.Huomasin juuri, että kun levytila loppuu, niin Laturi ei anna virheilmoitusta, vaan ilmoittaa "completed in xx seconds."
Juu ei pidä Laturi kirjaa mistään, Laturi vain lataa. Laturi ei ole FlickFetch.Laturin suurin puute on se, että se ei pidä kirjaa jo ladatuista videoista.
Ai sinä olet sitä mieltä. Ja onhan se harmi. Mutta eiköhän lopeteta FlickFetchin haikailu tässä ketjussa tähän, sitä varten on oma ketju.Toki tuo päiväys on turha mutta muuten tuo FFn nimeäminen on paljon selvempi. Harmi että FFn kehitys tuntuu pysähtyneen toistaiseksi.
Onhan siellä tekstitiedostossa usein se valmistumisvuosi. Mutta vapaamuotoisen tekstin jäsentely ei ole ihan yksinkertaista, enkä minä oikeasti kaipaa leffatietoja tiedostonimiin. Nimenomaan elokuvista löytyy runsaasti metatietoja netistä, ja jotkut katseluohjelmat, etenkin Kodi, ovat niiden hyödyntämisessä eteviä. Itse siis käytän Kodia Nvidian androidtv-boksissa, kun katselen videotallenteita tv-ruudulla.Elokuvan valmistusvuosi olisi siinä Areenasta ladattavassa tekstitiedostossa lopussa. Mutta toki jos kaiken muun saa jostain metatietolistasta haettua, niin voi olla turha viritys.
Jeps. Itsekin heitän ladatut tiedostot kansioon ja kansion nassille Plexiä varten. Siinä kun nimeää kansion Plexiä varten nimi (vuosi) -muotoon, niin samalla vaivalla voi nimetä ne tiedostot copy-pastella tarpeen vaatiessa.Onhan siellä tekstitiedostossa usein se valmistumisvuosi. Mutta vapaamuotoisen tekstin jäsentely ei ole ihan yksinkertaista, enkä minä oikeasti kaipaa leffatietoja tiedostonimiin. Nimenomaan elokuvista löytyy runsaasti metatietoja netistä, ja jotkut katseluohjelmat, etenkin Kodi, ovat niiden hyödyntämisessä eteviä. Itse siis käytän Kodia Nvidian androidtv-boksissa, kun katselen videotallenteita tv-ruudulla.
C:\demo>dir
Volume in drive C has no label.
Volume Serial Number is B217-992B
Directory of C:\demo
08.06.2024 19.33 <DIR> .
08.06.2024 19.03 3 407 457 989 aamiainen ruohikolla.mkv
08.06.2024 19.28 19 968 teksturi.exe
2 File(s) 3 407 477 957 bytes
1 Dir(s) 149 513 588 736 bytes free
C:\demo>rem leffassa tekstit 2 sekuntia aikasessa
C:\demo>teksturi
Käyttö: teksturi [ lataa | korjaa ] lisämääreet
korjaa tai lataa videotiedostojen tekstiraitoja. v. 1.0.0 / hrk
C:\demo>teksturi lataa
Käyttö: teksturi URL
jossa URL on areena-ohjelman webisivun osoite, muotoa https://areena.yle.fi/1-234567,
tai pelkkä loppuosa, esim. 1-234567, jolloin otsikkojen kieleksi oletetaan Suomi.
Imuroidaan areena-ohjelman kaikki tekstiraidat srt-tiedostoiksi, tallettaen ne
nykykansioon nimillä, jotka on johdettu areena-ohjelman otsikkotiedoista.
Imuroinnissa käytetään ffmpeg-ohjelmaa, jonka pitää olla löydettävissä
nimen perusteella "polun varrelta". / hrk
C:\demo>teksturi korjaa
Käyttö: teksturi korjaa tiedostonimi kokonaisluku
jossa tiedoston tarkenne on .srt, .mkv tai .mp4 ja kokonaisluku enintään +/-60.
Ohjelma käy läpi tiedoston sisältämien tekstitysten aikaleimat, ja lisää niihin
halutun määrän sekunteja. Ffmpeg tarvitaan. / hrk
C:\demo>rem kokeillaanpa korjausta
C:\demo>teksturi korjaa "aamiainen ruohikolla.mkv" 2
ok
C:\demo>dir
Volume in drive C has no label.
Volume Serial Number is B217-992B
Directory of C:\demo
08.06.2024 19.36 <DIR> .
08.06.2024 19.03 3 407 457 989 aamiainen ruohikolla.bak.mkv
08.06.2024 19.37 3 407 457 990 aamiainen ruohikolla.mkv
08.06.2024 19.28 19 968 teksturi.exe
3 File(s) 6 814 935 947 bytes
1 Dir(s) 146 104 979 456 bytes free
C:\demo>rem voidaan myös hakea irtotekstit netistä
C:\demo>teksturi lataa https://areena.yle.fi/1-64206361
Tekstiraitoja löytyi 2
Valmis: .\Syyttäjä Imma Tataranni 2 ( 1). Eläimellistä menoa 1_2.fin.srt
Valmis: .\Syyttäjä Imma Tataranni 2 ( 1). Eläimellistä menoa 1_2.swe.srt
ok
C:\demo>rem huom. tekstit ovat utf8-koodissa
C:\demo>
Tiedän erinomaisen hyvin, että keskitetysti ylläpidetyissä Windows-ympäristöissä sovellukset pyritään asentamaan Programs-kansioon administraattorin tai systeemivaltuuksin toimivan järjestelmäpalvelun toimesta. Nyt kuitenkin Laturi (ja FlickFetch, ja moni muu) on tarkoitettu kotikäyttöön ja sen voi asentaa ilman korotettuja oikeuksia. Organisaatioissakaan keskitetysti hallitut yrityskoneet eivät enää ole itsestäänselvyys, vaan töitä tehdään usein ikiomilla läppäreillä. "Bring your own device".Ihan on pakko ihmetellä yhtä asiaa: 1 x törmäsin tähän kun aakkosfirma kromeselaimensa toi markkinalle.
Nimittäin että miksi ihmeessä ohjelma pitää asentaa jonnekin user filesin alle?
Se oli nopea kokeilu, ei suostunut se toimimaan program filesin alla mihin lähtökohtaisesti ohjelmat asennetaan Windows-koneessa.
Rankkasin haittaohjelmaksi (sitähän se mainoskökkö on) ja laitoin poistoon.
Ainut perustelu minkä voin keksiä on että saadaan asennettua softa yrityskoneeseen johona ei käyttäjällä voima riitä koska kielletty / estetty.
FlickFetch tojmii mainiosti, Laturikin tojmii mutta teksturipa ej tojmi. Omituista.
Kiitos kaunis näiden ohjelmien kehittäjille, onpa niistä iloa ollut vuosien varrella.
Päivitin kuitenkin teksturin, kun ffmpeg-ohjelman saatavuustarkistus toimi väärin., ja saattoi aiheuttaa ruman virheilmoituksen.
MUTTA: Olisko miten hankala laittaa se jaksojen lista niin että uusimman kauden uusin jakso olisi päälimmäisenä tyrkyllä tai vaikka viimeisenä?
Kun jotain sarjaa lataa jakson tai 5 kerrallaan niin ei tarttisi keskeltä listaa niitä aina hakea?
Kokeilin, ja ainakaan VLC ei tuota hearing_impaired-attribuuttia ymmärrä. Joten unohdamme toistaiseksi.Tästä tulikin sopiva aasinsilta palata vanhaan keskusteluumme kielimerkinnöistä.
Nykyisin ainakin LAV Splitter tukee hearing_impaired ja visually_impaired -flageja mkv-tiedostoissa. Itselläni on esim. tekstityskielen valintana *:fin|!h eli mille tahansa audiokielelle teksitysraidaksi valitaan suomenkielinen, muttei kuitenkaan ohjelmatekstitystä.
Ai se päivämäärä tulee FlickFetchistä? Luulin että se on jokin Areenan määrittelemä juttu.Laturin nimeämiskäytäntö on sellainen kuin on. En ole aikeissa tehdä siitä säädettävää, koska ohjelma on tehty omaan käyttöön ja olen sen jo säätänyt mieleisekseni. Nimissä on kyllä kaikki samat tiedot kuin FlickFetchilläkin, tiiviimmässä muodossa, lukuunottamatta päiväystä, joka oletusarvoisesti on harvinaisen epäkiinnnostava, päivä jolloin ohjelma on lisätty Areenaan. Ketä se kiinnostaa? Imurointipäivä on tiedostoissa itsessään, mutta ohjelman ensiesityksen päivämäärää tai elokuvan valmistusvuotta ei tietenkään löydy mistään.
Tiedostonimen formaatti tulee FlickFetchiltä, ja oletusarvoisesti siihen sisältyy eräs päivämäärä, jonka FF saa Areenasta tai Ruudusta. Mutta tiedostonimen voisi kyllä muokata mieleisekseen, jos viitsisi perehtyä ohjelman tarjoamiin (turhan) monipuolisiin mahdollisuuksiin.Ai se päivämäärä tulee FlickFetchistä? Luulin että se on jokin Areenan määrittelemä juttu.
Minua se päivämäärä vain ärsyttää koska monesti en muista olenko jonkun video jo downloadannut, ja jos päivämäärä muuttuu, ei vanha tiedosto ylikirjoitu vaan sitten on kaksi kertaa sama tiedosto, hieman eri nimellä.
Eli minulta ei-ääni esim. päivämäärän lisäämiselle tiedostonimeen. Kuten sanottu, sen päivämäärän näkee myös tiedoston tiedoista, jos kiinnostaa.
Voisit kyllä ottaa rennommin kun kovin kärkkäästi kommentoit jos joku uskaltaa olla eri mieltä kanssasi.Ai sinä olet sitä mieltä. Ja onhan se harmi. Mutta eiköhän lopeteta FlickFetchin haikailu tässä ketjussa tähän, sitä varten on oma ketju.
Laturi-kansiossa, johon viittava linkki siis löytyy tämän ketjun aloitusviestistä, on nyt uusi ohjelma areena-srt.exe.
Kuten olen tässä ketjussa äskettäin kertonut, areena-srt korvaantui varsin pian ohjelmalla nimeltä teksturi.exe.1)
Olenkohan taas eksyksissä? Jos Laturi-kansiolla tarkoitetaan OneDrive-kansiota, niin minun rilleilläni ei siellä tuollaista ohjelmaa näy.
2) Laturin lataamat videot ovat usein minulle turhan korkealla bittivirralla. Onko mitä keinoa esim. rajoittaa max-bittivirtaa?
IP
Siltä varalta että joku tarvitsee enemmän rautalankaa: Videostriimin laatuominaisuudet, kuten bitrate, määräytyvät siinä vaihdeessa kun se striimi tehdään. Ffmpeg tai muu latausohjelma kopioi valmiin striimin. Striimin voi kyllä konvertoida (yleensä huonompilaatuiseksi, koska tyhjästä on paha nyhjästä) myös ffmpegin avulla, mutta tähän on parempiakin välineitä, esim. Handbrake. Kysymyksessä on tällöin melko raskas ja aikaa vievä operaatio. Eikä liity Laturiin millään tavoin.Laturi valitsee kullakin resoluutiolla tarjolla olevista striimeista sen, jossa on suurin bitrate. Tähän ei voi vaikuttaa. Useimmiten vaihtoehtoja ei ole. Laturi, tai siis ffmpeg, ei itse säätele bittivirtaa.
Siltä varalta että joku tarvitsee enemmän rautalankaa: Videostriimin laatuominaisuudet, kuten bitrate, määräytyvät siinä vaihdeessa kun se striimi tehdään. Ffmpeg tai muu latausohjelma kopioi valmiin striimin. .... Eikä liity Laturiin millään tavoin.
Kysymyksessä on tällöin melko raskas ja aikaa vievä operaatio. Eikä liity Laturiin millään tavoin.
Eihän se osaa. Voit kyllä asettaa bitratelle maksimin, mutta sillä on vaikutusta vain jos tarjolla on vaihtoehtoja. Hyvin harvoin on. Sopii kokeilla....ööh...
Mitenkähän FF sitten osaa (=osasi vanhoilla YLEn ohjelmilla) tehdä tämän?
Siihen se tekstitys loppuu, kyllä. Ei voi mitään.Vera Stanhope, Kausi 7, jakso 5 (K7, J5: Rikottu lupaus 1/2 | Vera Stanhope tutkii).
Laturilla tekstitystä latautuu 95 tekstitystä eli viimeinen on
95
00:08:46,114 --> 00:08:50,434
Ettekö voisi joustaa, herra Greenhill?
- Pääsemme sinne kyllä.
Olen kokeillut muutaman kerran, ja jokaisella kerralla pysähtyy tuohon. Itse jakso latautuu kokonaan. Kaikissa muissa Vera Stanhopen Areenassa olevien kausien 1 -7 jaksoissa tekstitys tulee kokonaan. Areenassa katsottaessa tekstitys jatkuu tuossa jaksossa normaalisti loppuun asti.
Mielenkiintoinen ilmiö, sillä, kuten totesin, Areenan playerilla tekstitys jatkuu normaalisti jakson loppuun asti.Siihen se tekstitys loppuu, kyllä. Ei voi mitään.
WEBVTT #Elemental Media Engine(TM) 2.1.3.0
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:180000
95
00:08:46.114 --> 00:08:50.434
Ettekö voisi joustaa, herra Greenhill?
- Pääsemme sinne kyllä.
96
00:08:51.394 --> 00:08:53.714
Ehkä siinä on vähän jouston varaa.
import re
import requests
url = input('Tekstityksen URL (.m3u8): ')
user_agent = input('User-agent: ')
headers = {'User-Agent': user_agent, 'Origin': 'https://areena.yle.fi'}
newsub = ['WEBVTT\n', '\n']
last_ts = ''
fragments_left = True
get_playlist = requests.get(url, headers = headers)
playlist_lines = get_playlist.text.splitlines()
hls_url = url.rsplit('.m3u8', 1)[0].rsplit('/', 1)[0]
hls_url_ = hls_url
for line in playlist_lines:
if line.strip().endswith('.vtt'):
hls_url_ = hls_url
fragment_url = line.strip()
while fragment_url.startswith('../'):
fragment_url = fragment_url.split('/', 1)[1]
hls_url_ = hls_url_.rsplit('/', 1)[0]
fragment_url = hls_url_ + '/' + fragment_url
get_fragment = requests.get(fragment_url, headers = headers)
get_fragment.encoding = 'utf-8'
lines = get_fragment.text.splitlines(True)
print(fragment_url)
for i, l in enumerate(lines):
if not l == last_ts and re.match(r'\d{2}:\d{2}:\d{2}.\d{3} --> \d{2}:\d{2}:\d{2}.\d{3}', l):
newsub.append(lines[i-1])
newsub.append(l)
j = 1
while lines[i+j].isspace():
j += 1
while not lines[i+j].isspace():
newsub.append(lines[i+j])
j += 1
newsub.append('\n')
last_ts = l
with open ('subtitle.vtt', 'w') as f:
f.writelines(newsub)
Hyvä huomio. Valitettavasti python-skripti on, hieman viritettynäkin, aivan liian hidas. HLS-striimin lataus on yllättävän raskas operaatio.Fragmentissa 88 (index_7_0_88.vtt) on tyhjä rivi aikaleiman ja itse tekstitysrivin välissä, mikä näyttäisi rikkovan tekstityksen latauksen ainakin FFmpeg:llä ja yt-dlp:llä.
Koodi:WEBVTT #Elemental Media Engine(TM) 2.1.3.0 X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:180000 95 00:08:46.114 --> 00:08:50.434 Ettekö voisi joustaa, herra Greenhill? - Pääsemme sinne kyllä. 96 00:08:51.394 --> 00:08:53.714 Ehkä siinä on vähän jouston varaa.
EDIT: Vaivasi tilanne, niin kirjoittelin huvikseni python-skriptin tekstitysten lataukseen. Ei nyt välttämättä kaunista, mutta toimii (ainakin minulla).
Koodi:import re import requests url = input('Tekstityksen URL (.m3u8): ') user_agent = input('User-agent: ') headers = {'User-Agent': user_agent, 'Origin': 'https://areena.yle.fi'} newsub = ['WEBVTT\n', '\n'] last_ts = '' fragments_left = True get_playlist = requests.get(url, headers = headers) playlist_lines = get_playlist.text.splitlines() hls_url = url.rsplit('.m3u8', 1)[0].rsplit('/', 1)[0] hls_url_ = hls_url for line in playlist_lines: if line.strip().endswith('.vtt'): hls_url_ = hls_url fragment_url = line.strip() while fragment_url.startswith('../'): fragment_url = fragment_url.split('/', 1)[1] hls_url_ = hls_url_.rsplit('/', 1)[0] fragment_url = hls_url_ + '/' + fragment_url get_fragment = requests.get(fragment_url, headers = headers) get_fragment.encoding = 'utf-8' lines = get_fragment.text.splitlines(True) print(fragment_url) for i, l in enumerate(lines): if not l == last_ts and re.match(r'\d{2}:\d{2}:\d{2}.\d{3} --> \d{2}:\d{2}:\d{2}.\d{3}', l): newsub.append(lines[i-1]) newsub.append(l) j = 1 while lines[i+j].isspace(): j += 1 while not lines[i+j].isspace(): newsub.append(lines[i+j]) j += 1 newsub.append('\n') last_ts = l with open ('subtitle.vtt', 'w') as f: f.writelines(newsub)
Käyttö: teksturi paikkaa URL
Toimii kuin 'teksturi lataa', siis lataa kaikki tekstiraidat, mutta ei käytä
lataamiseen ffmpeg-ohjelmaa, joka joskus jättää vialliset tekstiraidat kesken.
Hitaampi kuin 'teksturi lataa'. Vain tositarpeeseen. / hrk
Joo, se python-skripti oli lähinnä vain tuollainen proof-of-concept-toteutus. Vähän ajattelinkin, että toteuttanet käyttökelpoisemman työkalun.Hyvä huomio. Valitettavasti python-skripti on, hieman viritettynäkin, aivan liian hidas. HLS-striimin lataus on yllättävän raskas operaatio.
Lisäsin teksturi-ohjelmaani (joka siis löytyy Laturi-kansiosta) uuden toiminnon:
Koodi:Käyttö: teksturi paikkaa URL Toimii kuin 'teksturi lataa', siis lataa kaikki tekstiraidat, mutta ei käytä lataamiseen ffmpeg-ohjelmaa, joka joskus jättää vialliset tekstiraidat kesken. Hitaampi kuin 'teksturi lataa'. Vain tositarpeeseen. / hrk
Tämä siis on selvästi nopeampi kuin python-skripti, koska on kirjailtu C#-kielellä, ja tekee tavallisia srt-tiedostoja, eli jättää alkurivit pois ja korvaa timestamp-riveillä pisteen pilkulla.
Toivottavasti Yle korjaa prosessinsa, joka päästää läpi viallisia tekstityksiä. Minä en ole tällaiseen ennen törmännyt. En tosin tiedä, onko SubRip-formaattia (srt) varsinaisesti standardoitu missään, mutta kyllä kaikissa kuvauksissa sanotaan, että tyhjä rivi päättää tekstin, ei aloita sitä. Eri asia on sitten se, miten striimiä lukevan ohjelman pitäisi virheen kohdatessaan käyttäytyä. Ffmpeg näyttää olevan aika tiukkapipoinen.Joo, se python-skripti oli lähinnä vain tuollainen proof-of-concept-toteutus. Vähän ajattelinkin, että toteuttanet käyttökelpoisemman työkalun.
Kirjoitin itse asiassa ensin skriptin, joka latasi curlilla kaikki tekstitysfragmentit talteen ja etsi niistä ylimääräiset rivivälit (ei löytynyt kuin tuo yksi). Sitten tulikin mieleen, että voisihan niistä ladatuista fragmenteista samantien kasata toimivan tekstityksen, ja lopulta päädyin requests-toteutukseen, kun en halunnut skriptin kirjoittavan kaikkia fragmentteja levylle, enkä toisaalta viitsinyt ruveta miettimään, saisiko curlin stdoutin, kuinka ohjattua python-skriptille.
E: Curlin kutsuminen python-skriptistähän se näköjään vasta hidasta onkin.
hls_url = url.rsplit('.m3u8', 1)[0].rsplit('/', 1)[0]
...
...
fragment_url = line.strip()
while fragment_url.startswith('../'):
fragment_url = fragment_url.split('/', 1)[1]
hls_url_ = hls_url_.rsplit('/', 1)[0]
fragment_url = hls_url_ + '/' + fragment_url
from urllib.parse import urljoin
...
...
fragment_url = urljoin(url, line.strip())
Nopeuden suhteen rohkenen olla eri mieltä. Tosin sinänsä fragmentin urlin muodostus ei tuossa se aikaa vievä toimenpide ole.Yksinkertaisemmin, luultavasti virheettömämmin ja paljon nopeammin näin:
Koodi:from urllib.parse import urljoin ... ... fragment_url = urljoin(url, line.strip())
Mutta ei siitä silti riittävän nopeaa tule. Joka tapauksessa kannattaa aina pyrkiä käyttämään kirjastofunktioita. Ja juu, prosessien käynnistäminen maksaa.
...
hls_url = url.rsplit('.m3u8', 1)[0].rsplit('/', 1)[0]
fragment_url_formed = 0
time_gone = [0, 0]
N = 5000
stime = time.time()
for n in range(N):
for line in playlist_lines:
if line.strip().endswith('.vtt'):
hls_url_ = hls_url
fragment_url = line.strip()
while fragment_url.startswith('../'):
fragment_url = fragment_url.split('/', 1)[1]
hls_url_ = hls_url_.rsplit('/', 1)[0]
fragment_url = hls_url_ + '/' + fragment_url
fragment_url_formed += 1
print(f'Muodostettiin fragmentin URL {fragment_url_formed} kertaa merkkijonomanipulaatiolla.')
time_gone[0] = time.time() - stime
print(f'Aikaa kului {time_gone[0]} sekuntia.')
from urllib.parse import urljoin
fragment_url_formed = 0
stime = time.time()
for n in range(N):
for line in playlist_lines:
if line.strip().endswith('.vtt'):
fragment_url = urljoin(url, line.strip())
fragment_url_formed += 1
print(f'\nMuodostettiin fragmentin URL {fragment_url_formed} kertaa urljoinilla.')
time_gone[1] = time.time() - stime
print(f'Aikaa kului {time_gone[1]} sekuntia.')
print(f'\nFunktio urljoin oli {time_gone[1]/time_gone[0]:.2f} kertaa hitaampi.')
Muodostettiin fragmentin URL 2335000 kertaa merkkijonomanipulaatiolla.
Aikaa kului 4.713354825973511 sekuntia.
Muodostettiin fragmentin URL 2335000 kertaa urljoinilla.
Aikaa kului 23.707769632339478 sekuntia.
Funktio urljoin oli 5.03 kertaa hitaampi.
Laturi ei pidä kirjaa mistään, se vain lataa. FlickFetch on varmaankin sinulle parempi ohjelma.Voisiko Laturiin saada ominaisuuden joka ehdottaisi että voi ladata sarjan lataamattomat jaksot eikä kaikkia jaksoja taas uudestaan? FlickFetchissä tämä älykäs vaihtoehto on. Vai enkö osaa löytää/valita tuota ominaisuutta jos sellainen valinta on jo olemassa? Nyt lataan jaksoja uudestaan ja uudestaan ja poistan aiemmat ladatut jaksot.
Voisiko Laturiin saada ominaisuuden joka ehdottaisi että voi ladata sarjan lataamattomat jaksot eikä kaikkia jaksoja taas uudestaan? FlickFetchissä tämä älykäs vaihtoehto on. Vai enkö osaa löytää/valita tuota ominaisuutta jos sellainen valinta on jo olemassa? Nyt lataan jaksoja uudestaan ja uudestaan ja poistan aiemmat ladatut jaksot.
Ilmeisesti ei haluta kehittää ohjelmaa parempaan suuntaan käyttäjäystävällisemmäksi. Olkoon sitten niin.Laturi ei pidä kirjaa mistään, se vain lataa. FlickFetch on varmaankin sinulle parempi ohjelma.
Niin, kuten on moneen kertaan sanottu, teen Laturia ensisijaisesti itselleni, en yleisölle, ja minä en monia FlickFetchin temppuja tarvitse. Sensijaan pyrin siihen, että kaikki ne toiminnot, joita Laturissa on, todella toimivat. Tässäkin on aivan tarpeeksi puuhaa.Ilmeisesti ei haluta kehittää ohjelmaa parempaan suuntaan käyttäjäystävällisemmäksi. Olkoon sitten niin.
Asia vilpitön.Niin, kuten on moneen kertaan sanottu, teen Laturia ensisijaisesti itselleni, en yleisölle, ja minä en monia FlickFetchin temppuja tarvitse. Sensijaan pyrin siihen, että kaikki ne toiminnot, joita Laturissa on, todella toimivat. Tässäkin on aivan tarpeeksi puuhaa.
Toimii, kunhan kirjaudut elisaviihde-tunnuksella etkä elisa-tunnuksella (sähköposti).Pitäisikö Elisa Viihteeltä lataamisen toimia? Olen määrittänyt käyttäjätunnuksen ja salasanan, mutta leikepöydälle kopioidessa Laturin outputiin tulee vain osoitelinkki (esim. Elokuva: Upgrade tai Elisa Viihde), mutta ohjelma ei ala lataamaan. Debug-moodi päällä ei tule enempää tietoa. Areenasta lataaminen toimii ok.
Sillä nimenomaan olen tunnistautunut. Samat tunnukset toimivat selaimessa Viihteen sivuilla.Toimii, kunhan kirjaudut elisaviihde-tunnuksella etkä elisa-tunnuksella (sähköposti).