FlickFetch

Viestiketju alueella 'Yleinen ohjelmistokeskustelu' , aloittaja darxide, 17.05.2017.

  1. Samppa88

    Samppa88

    Viestejä:
    78
    Rekisteröitynyt:
    20.10.2018

    Tolla svtplay-dl ohjelmalla pystyy lataamaan myös muiden maiden Viafree-ohjelmia, mut Suomen Viafree-ohjelmien lataus ei taida olla mahdollista. Olishan se hyvä jos saisi noi Suomen dplay-ohjelmat mukaan FF:ään.
     
  2. hissukka

    hissukka

    Viestejä:
    2
    Rekisteröitynyt:
    09.02.2019
    Toimiihan tuo viafree.fi suoraan ilman modifikaatioita. Ainakin mulla lähti lataamaan..
     
  3. darxide

    darxide

    Viestejä:
    390
    Rekisteröitynyt:
    22.10.2016
    En sano etteikö tota joskus voisi selvitellä, mutta tällä hetkellä aikaa jää FF:lle sen verran vähän että ei ole suunnitelmissa ottaa työn alle...
     
  4. basfreak

    basfreak

    Viestejä:
    2
    Rekisteröitynyt:
    09.02.2019
    Tyytyväisenä olen tähän asti tätä käytellyt, todella suuret kiitokset siitä tekijälle.
    Nyt huomasin että areenan radio puolelta useampaa eri latausta yrittäessäni tulee seuraava virheilmoitus:
    Can't find any download links. Check the address.
    Kokeiltu sekä viimeisimmällä (v4.1.3.2) versiolla että useammalla vähän vanhemmallakin ja myös usealla eri koneella.
    Virhe ilmenee esim. dj-orion ohjelman, Uuden tanssimusiikin listan ja YleX Throwback: Jani Kareinen viimeisimpien neljän kuunneltavissa olevien ohjelmien linkkien kanssa.
    Eli esim. seuraavat linkit antava tuota virhettä:





    Jos näitä yrittää hakea flickfetchin omalla searchilla, niin ohjelman nimellä kyllä löytää select episodes näkymään jaksot, mutta kun niitä yrittää sitä kauttakin ladata tulee tuo sama virheilmoitus.
    Olisiko vinkkejä mitä kokeilla? Vai onko areenan toimintaa jotenkin muutettu kuukauden sisään niin että ei uusimmallakaan versiolla enää toimi? Tammikuun alkupuolella edellä mainittujen radio-ohjelmien lataukset ovat vielä toimineet normaalisti. Selaimella noiden kuuntelu toki toimii.
     
  5. juhaa

    juhaa

    Viestejä:
    282
    Rekisteröitynyt:
    17.10.2016
    Pistätkö muutokset jakoon?
     
  6. darxide

    darxide

    Viestejä:
    390
    Rekisteröitynyt:
    22.10.2016
    Laitatko lokia näistä että mikä menee pieleen? Sain talteen kaikki 5 jaksoa Orionia ja 6 jaksoa Throwbackia, ei ongelmia eikä virheilmoituksia.

    Lokin saa auki Settings-napin viereisen nuolinapin valikosta "Show log". Ja avautuvasta ikkunasta laita päälle "Log settings / Show internal exceptions".

    upload_2019-2-10_0-26-3.png upload_2019-2-10_0-26-16.png
     
  7. basfreak

    basfreak

    Viestejä:
    2
    Rekisteröitynyt:
    09.02.2019
    Hei

    Internal exceptions logi löytyy [#1] 08.58.37 Object reference not set to an instance of an object. at Flic - Pastebin.com
    ja network activity logi Ladattu siis osoitetta https://areena.yle.fi/1-50043439 [#1] 08.58.32 http:/ - Pastebin.com
    Kokeilin ladata linkkiä
     
  8. McPaHa

    McPaHa

    Viestejä:
    48
    Rekisteröitynyt:
    22.06.2017
    Anteeksi että kysyn mutta oliko niin ettei ruudusta saa ladattua videota mikä on tunnuksen/kirjautumisen takana vaikka maksetut ruutu tunnukset on olemassa?
     
  9. Samppa88

    Samppa88

    Viestejä:
    78
    Rekisteröitynyt:
    20.10.2018
    Kyllä. Syy siinä, että jos sinä saisit ladattua maksullisia Ruutu+ -ohjelmia niin muutkin saisivat. Näitä saa ladattua tuolla toisella ohjelmalla eli laturilla. laturi – Google Drive Sen voi ladata tuolta.
     
    McPaHa tykkää tästä.
  10. darxide

    darxide

    Viestejä:
    390
    Rekisteröitynyt:
    22.10.2016
    Onko varmasti uusin versio FF:stä? Näitä "GetToken" virheitä ei pitäisi uusimmalla enää tulla:
    Koodi:
    Object reference not set to an instance of an object.
       at FlickFetch.AreenaUtils.GetToken(JToken obj, String str)
    Ja varmasti ei ole myöskään VPN käytössä? Itse laitoin VPN:n päälle niin kyseistä kalturan osoitetta ei saatu haettua:
    Koodi:
    [#9] 08.58.41
    https://cdnapisec.kaltura.com/html5/html5lib/v2.63.3/mwEmbedFrame.php?&wid=_1955031&uiconf_id=37558971&entry_id=1_6ite6cpp&playerId=yle-kaltura-player14043728505883-1_6ite6cpp&forceMobileHTML5=true&urid=2.63.3&callback=mwi_ylekalturaplayer140437285058831p0czogfc0&parts=1
    
    [#9] 08.58.41
    The remote server returned an error: (404) Not Found.
       at System.Net.WebClient.OpenRead(Uri address)
       at FlickFetch.AreenaUtils.GetSourceCodeAreena(String address)
     
  11. darxide

    darxide

    Viestejä:
    390
    Rekisteröitynyt:
    22.10.2016
    Ehdin perehtyä tähän nyt, ja oikeassa olet. Seuraavaan versioon toimiva 1252, sekä myös valinta onko UTF8 ilman vai BOMin kanssa. Toi piti tehdä vähän toisin kuin ennen, eli ladata Ylen sivuilta UTF8-muotoinen tekstitys byte-arrayksi jolloin sen sai konvertoitua 1252:ksi. Kirjoitus tiedostoon FileStreamilla, ja BOM pitää kirjoittaa tiedoston alkuun erikseen jos sen haluaa. Encoding-määrettä ei tuon kirjoituskäskyn kanssa voi käyttää. Ainakaan parempaa tapaa en nyt keksinyt.
     
  12. hrk

    hrk

    Viestejä:
    461
    Rekisteröitynyt:
    23.07.2017
    Niin siis byte array on vain tavuja. Vasta kun se konvertoidaan tekstiksi, voidaan puhua merkkivalikoimasta. Yleltä tulee nimenomaan utf8-koodattua tekstiä. Ja kun on tekstiä, niin esim. File.WriteAllText kyllä tuntee Encoding-määreen. Sitä FileStreamia siis ihmettelen, ja ongelmaa muutenkin.
     
  13. atha

    atha

    Viestejä:
    17
    Rekisteröitynyt:
    20.10.2016
    Eikös vois toimia palttiarallaa noin tuo tekstien tallennus eri enkoodauksilla.

    HttpClient client = new HttpClient();
    string result = await client.GetStringAsync("ylentekstiurl");

    using (StreamWriter writer1 = new StreamWriter(File.Open("c:\\temp\\utf8_withoutbom.txt", FileMode.CreateNew), new UTF8Encoding(false)))
    using (StreamWriter writer2 = new StreamWriter(File.Open("c:\\temp\\utf8_withbom.txt", FileMode.CreateNew), new UTF8Encoding(true)))
    using (StreamWriter writer3 = new StreamWriter(File.Open("c:\\temp\\win1252.txt", FileMode.CreateNew), Encoding.GetEncoding(1252)))
    {
    writer1.Write(result);
    writer2.Write(result);
    writer3.Write(result);
    }
     
  14. hrk

    hrk

    Viestejä:
    461
    Rekisteröitynyt:
    23.07.2017
    Niin tai näin:
    Koodi:
    using System.Text;
    using System.IO;
    using System.Threading.Tasks;
    using System.Net.Http;
    
    namespace subtitles
    {
        class Program
        {
            static string uri = "https://...";
            static void Main()
            {
                GetSubtitles(uri).Wait();
            }
            static async Task GetSubtitles(string uri)
            {
                var body = "";
    
                using (var client = new HttpClient())
                {
                    try
                    {
                        var response = await client.GetAsync(uri);
                        response.EnsureSuccessStatusCode();
                        body = await response.Content.ReadAsStringAsync();
                    }
                    catch {}
                }
                if (!string.IsNullOrEmpty(body))
                {
                    File.WriteAllText("utf8.srt", body);
                    File.WriteAllText("cp1252.srt", body, Encoding.GetEncoding(1252));
    
                }
            }
        }
    }
    
    
     
  15. hrk

    hrk

    Viestejä:
    461
    Rekisteröitynyt:
    23.07.2017
    Tai hieman yksinkertaistaen, ja edellyttäen että c#-versioksi on valittu vähintään 7.1 (async main), ja lisäten myös BOMmillisen vaihtoehdon:
    Koodi:
    using System.Text;
    using System.IO;
    using System.Threading.Tasks;
    using System.Net.Http;
    
    namespace subtext
    {
        class Program
        {
            static string uri = "https://...";
            static async Task Main()
            {
                string text = "";
                using (var client = new HttpClient())
                {
                    text = await client.GetStringAsync(uri);
                }
                if (!string.IsNullOrEmpty(text))
                {
                    File.WriteAllText("utf8.srt", text);
                    File.WriteAllText("utf8bom.srt", text, Encoding.UTF8);
                    File.WriteAllText("cp1252.srt", text, Encoding.GetEncoding(1252));
                }
            }
        }
    }
    
    
     
  16. darxide

    darxide

    Viestejä:
    390
    Rekisteröitynyt:
    22.10.2016
    Perhana. Oon kokeillut molempia tapoja jo aiemmin, ja itseasiassa nykyisessä julkisessa FF versiossa tallennus menee hrk viimeisimmän mukaan. Erona toki se, että käytän yksinkertaisempaa WebClientiä ilman asynceja (koko lataushomma juoksee muutenkin jo omassa säikeessään) ja olin epähuomiossa käyttänyt samaa enkoodausta myös WebClientissä (WebClient.Encoding), vaikka siinä pitää tietysti olla käytössä UTF8 ja vasta tiedoston tallennusvaiheessa win1252. Tuo sotki kokonaan tuon win1252:n tallennuksen.

    Noh, unohdetaan googlatut monimutkaisemmat tavat ja pysytään vanhassa :) Kiitos esimerkeistä, pistivät tarkistamaan oman koodin.