• kitnaht@lemmy.world
    link
    fedilink
    arrow-up
    48
    ·
    4 months ago

    Also the legal benefit of scraping the site without the YouTube API is that you haven’t had to accept their terms of service.

    There’s an Android app called GrayJay that got a C&D from Google, and they told Google to kindly fuck off, because they hadn’t used any of Google’s APIs. Google had no leg to stand on.

  • Björn Tantau@swg-empire.de
    link
    fedilink
    arrow-up
    26
    ·
    4 months ago

    It’s not very slow to scrape a website. Works quite well. Your app would appear like any other browser to the site. The trouble with that is that it breaks easily when they change something on their site. Doesn’t even have to be a malicious change.

    • governorkeagan@lemdro.idOP
      link
      fedilink
      English
      arrow-up
      7
      ·
      4 months ago

      It’s not very slow to scrape a website. Works quite well.

      That’s good to know, I’ll look into that some more. I was thinking that it might be slow if I’m having to scrape each page, every time a user changes categories (or something similar).

      The trouble with that is that it breaks easily when they change something on their site.

      I completely forgot about that :(

      • Björn Tantau@swg-empire.de
        link
        fedilink
        arrow-up
        9
        ·
        4 months ago

        That’s good to know, I’ll look into that some more. I was thinking that it might be slow if I’m having to scrape each page, every time a user changes categories (or something similar).

        Well, it’s as slow as the website you’re scraping. Could actually be faster if you don’t have to execute a lot of bullshit JavaScript. And for the rest clever caching should help.

        In terms of technology you’re looking for XSLT, Xpath, CSS selectors and whatever parsers are available for your language of choice. Don’t ever attempt to use regex for scraping.

        • brokenlcd@feddit.it
          link
          fedilink
          arrow-up
          5
          ·
          4 months ago

          Don’t ever attempt to use regex for scraping.

          Proceeds to implement a scraper in bash with grep and awk because it’s the only way i know how to

            • brokenlcd@feddit.it
              link
              fedilink
              arrow-up
              1
              ·
              4 months ago

              I’ve always been searching for the time to learn python, but between uni and work i wake up at 5 and go back home at 10; + they where not going to pay me for this fix

              Tldr; couldn’t be fucked to study a whole other language in my nonexistent free time for a fix that they wouldn’t pay me for anyways

      • Ephera@lemmy.ml
        link
        fedilink
        arrow-up
        3
        ·
        4 months ago

        You should look into how the webpage is built. If it’s a static HTML webpage pre-rendered on the server, then you would have to scrape the HTML to extract the info.

        However, many more “modern” webpages use client-side JavaScript to separately request the actual data from the web server through a REST/HTTP API. This kind of API is not possible to fully restrict, unless they want to require all users to log in for viewing the webpage.
        And yeah, if it’s built like that, then you’d want to make use of that REST API. You do not need to use JavaScript to call it. Using any HTTP client library in any programming language, or even just curl, should work just as much.

        To see, if it’s built like that, open the “Network” tab in the Developer Tools of your browser and refresh the webpage.
        If it just loads a bunch of HTML, CSS and image files, then it’s the static webpage kind. If it sends/receives messages with JSON in the body to URLs without a file-type, then it’s likely the REST-API-kind.

  • Barx [none/use name]@hexbear.net
    link
    fedilink
    arrow-up
    2
    ·
    4 months ago

    Invidious does have APIs. People host invidious servers and the clients connect to them, similar to piped. I don’t know anything about Redlib but it might work the same!

    • governorkeagan@lemdro.idOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      4 months ago

      I’m referring to the fact that they don’t use or have major rate limits on the APIs that they use for either Reddit or YouTube, respectively.

  • andreas@lemmy.kfed.org
    link
    fedilink
    arrow-up
    2
    ·
    4 months ago

    RedLib and Invidious hoster here;

    I can confirm they do not use any backend API, however this means eventually they (YouTube and Reddit) kick on automatic rate limiting after a while and I have to switch up my vpn connection on my server. it’s annoying, but it works if you know a thing or two about proxies and web scraping (the knowledge from scraping can be cross applied to implementing a suitable proxy config)

    that said, RedLib’s backend token spoofing works a lot better than the Invidious method (Invidious emulates web traffic via Android mobile devices and gets the videos from Google Videos directly, bypassing YouTube for the heavy lifting).