3
submitted 1 month ago by [email protected] to c/[email protected]

I'm referring to projects like redlib or invidious.

I was thinking about doing something similar for a local second-hand marketplace and got curious. Redlib seems to use token spoofing to get past rate limits and Invidious doesn't even use the official YouTube API.

The only way I thought of, which would be slow, is to scrape the site (like you would with Beautiful Soup).

top 8 comments
sorted by: hot top controversial new old
[-] [email protected] 3 points 1 month 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.

[-] [email protected] 1 points 1 month 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).

[-] [email protected] 0 points 1 month 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.

[-] [email protected] 0 points 1 month 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 :(

[-] [email protected] 0 points 1 month 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.

[-] [email protected] 0 points 1 month 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

[-] [email protected] 1 points 1 month ago

Why not at least use Python?

[-] [email protected] 1 points 1 month 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

this post was submitted on 22 Jul 2024
3 points (100.0% liked)

Asklemmy

43366 readers
1507 users here now

A loosely moderated place to ask open-ended questions

Search asklemmy ๐Ÿ”

If your post meets the following criteria, it's welcome here!

  1. Open-ended question
  2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
  3. Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
  4. Not ad nauseam inducing: please make sure it is a question that would be new to most members
  5. An actual topic of discussion

Looking for support?

Looking for a community?

~Icon~ ~by~ ~@Double_[email protected]~

founded 5 years ago
MODERATORS