Invidious: Instructions for Heroku?

Created on 13 Sep 2018  路  9Comments  路  Source: iv-org/invidious

I am looking to selfhost Invidious on Heroku. In its current state Invidious can't just be deployed as it doesn't have a Procfile and also Heroku's Crystal buildpack is community maintained so it can be kinda broken. I would probably have to find a add-on to make logins work (even though I don't plan on using them) as Heroku does not have SQL or any type of database system built into webapps. It may even require a seperate branch of the source code just to make Invidious compatible. I am not the sharpest when it comes to Crystal but I could definitely help with creating a branch that is ready to deploy to Heroku.

I also understand if you wish not to support Heroku. In that case I may just make my own repo and try to make that work. I await your reply.

Resources:

Crystal buildpack for Heroku: https://github.com/crystal-lang/heroku-buildpack-crystal
Procfile format: https://devcenter.heroku.com/articles/procfile
Potential add on to be used for database: https://elements.heroku.com/addons/heroku-postgresql

question

Most helpful comment

Hey! I managed to get the app running in Heroku: https://invidious.herokuapp.com

My changes are not ready for a pull request yet but I plan to work on this soon. Wonderful project!

All 9 comments

I don't know much about Heroku, but I am currently looking into alternative ways to host Invidious: as a Docker image, on Ubuntu, and obviously support for Heroku would be good so that other folks can host the project.

Unfortunately it may be a bit before I can dig into this, although I would absolutely be interested in merging if you'd like to work on it, and I'd be happy to answer any questions here or on the FreeTube Matrix server.

Just merged support for Docker with #186. As I mentioned earlier I'm not familiar with Heroku, but I saw this article, which might be a good place to start for creating clusters on Heroku.

Hey! I managed to get the app running in Heroku: https://invidious.herokuapp.com

My changes are not ready for a pull request yet but I plan to work on this soon. Wonderful project!

@gustavo-gomez Incredible! Nice work, please provide source as soon as possible. Can't wait to deploy this!

Hey! I managed to get the app running in Heroku: https://invidious.herokuapp.com

My changes are not ready for a pull request yet but I plan to work on this soon. Wonderful project!

Hey I know it's been quite some time but could you please post source? I'm still interested in deploying this. Even if it's not current anymore I'd love something to work with.

It's against the TOS to host Invidious on Heroku:

Use the Service to operate an "open proxy" or any other form of Internet proxy service that is capable of forwarding requests to any End User or third party-supplied Internet host;
Use the Service to access a third party web property for the purposes of web scraping, web crawling, web monitoring, or other similar activity through a web client that does not take commercially reasonable efforts to:
identify itself via a unique User Agent string describing the purpose of the web client; and
obey the robots exclusion standard (also known as the robots.txt standard), including the crawl-delay directive;

-https://www.heroku.com/policy/aup

It's against the TOS to host Invidious on Heroku:

Use the Service to operate an "open proxy" or any other form of Internet proxy service that is capable of forwarding requests to any End User or third party-supplied Internet host;
Use the Service to access a third party web property for the purposes of web scraping, web crawling, web monitoring, or other similar activity through a web client that does not take commercially reasonable efforts to:
identify itself via a unique User Agent string describing the purpose of the web client; and
obey the robots exclusion standard (also known as the robots.txt standard), including the crawl-delay directive;

-https://www.heroku.com/policy/aup

As far as I know Heroku uses this restriction against "web proxy" scripts like GlypeProxy but not something like Invidious. Invidious is moreso an alternative client then a web proxy.

There are already other projects that work as alternative to YouTube's web interface like YouTube Video Downloader and otherwise.

Even then, Heroku's terms against proxies are rarely (if ever) enforced. But Invidious is still not a web proxy script and as such probably would not fall into these terms in the first place.

Invidious literally fall into this category of their AUP:

Use the Service to access a third party web property for the purposes of web scraping, web crawling, web monitoring, or other similar activity through a web client that does not take commercially reasonable efforts to:
identify itself via a unique User Agent string describing the purpose of the web client; and
obey the robots exclusion standard (also known as the robots.txt standard), including the crawl-delay directive;

Invidious doesn't identify as a unique User Agent and it does some web scraping for fetching YouTube content.

If Invidious starts to support officially Heroku I'm pretty sure that they will ban Invidious from their platform just like they did with cloud-torrent: https://github.com/jpillora/cloud-torrent/issues/82. They enforce their ToS when the app is getting quite popular on their platform.

Hey! I managed to get the app running in Heroku: https://invidious.herokuapp.com

My changes are not ready for a pull request yet but I plan to work on this soon. Wonderful project!

can you say how you managed to host it on heroku?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

stodge picture stodge  路  4Comments

SebKranz picture SebKranz  路  3Comments

Uffje picture Uffje  路  3Comments

Jtasiu picture Jtasiu  路  3Comments

Rb4eogrl picture Rb4eogrl  路  3Comments