Invidious is an alternative front-end to YouTube
Go to file
syeopite a027fbf7af
Rewrite extract_item and extract_items functions
This commit completely rewrites the extract_item and extract_items
function. Before this commit these two function were an unreadable
mess. The extract_item function was a lengthy if-elsif chain
while the extract_items function contained an incomprehensible
mess of .try, else and ||.

With this commit both of these functions have been pulled into a
separate file with the internal logic being moved to a few classes.

This significantly reduces the size of these two methods, enhances
readability and makes adding new extraction/parse rules much simpler.

See diff for details.
2021-06-24 08:52:47 -07:00
.github Prevent CI run when src or wrkflows aren't chngd 2021-06-18 11:53:28 -07:00
assets Add buffer btwn content and footer on some pages 2021-06-24 08:52:47 -07:00
config Allow providing 12-Factor-style Database URL in config 2021-01-30 19:33:58 +00:00
docker Update Dockerfile for crystal 1.0 2021-06-08 13:20:46 -07:00
kubernetes Remove some mentions of omarroth 2021-01-07 19:01:13 +01:00
locales Overhaul footer design. See #2032 2021-06-24 08:52:47 -07:00
screenshots Add missing screenshot and update the older ones 2020-12-06 17:25:00 +01:00
scripts Add ability to propagate locale removals 2021-06-13 07:23:45 -07:00
spec Make the linter happy, again 2021-04-21 16:10:25 +02:00
src Rewrite extract_item and extract_items functions 2021-06-24 08:52:47 -07:00
.editorconfig Initial commit 2017-11-23 01:48:55 -06:00
.gitattributes Only ignore the videojs libraries 2021-05-23 17:59:02 +00:00
.gitignore Untrack config.yml (#1557) 2020-12-10 08:18:30 +01:00
CHANGELOG.md Remove admin_email. Use repos url for captcha ID and reddit header. Add note about not updating changelog 2021-01-07 21:09:24 +01:00
docker-compose.yml Merge pull request #1254 from SuperSandro2000/patch-2 2020-08-03 17:11:50 +02:00
invidious.service Add logfile to systemd service and fix path 2019-01-23 21:31:52 +01:00
LICENSE Change license 2018-01-28 11:32:40 -06:00
README.md Remove freenode 2021-05-20 17:43:59 +02:00
shard.lock Bump lsquic.cr shard version to v2.18.1-2 2021-06-10 04:49:19 -07:00
shard.yml Bump lsquic.cr shard version to v2.18.1-2 2021-06-10 04:49:19 -07:00
TRANSLATION TRANSLATION file for l10n 2020-05-26 18:02:21 +00:00

Invidious

Invidious is an alternative front-end to YouTube.


Invidious instances:

Public Invidious instances are listed on the documentation website: https://instances.invidious.io/


Invidious features:

  • Copylefted libre software (AGPLv3+ licensed)
  • Lightweight (the homepage is ~4 KB compressed)
  • No ads
  • No tracking
  • Javascript is 100% optional
  • Tools for managing subscriptions:
    • Only show unseen videos
    • Only show latest (or latest unseen) video from each channel
    • Delivers notifications from all subscribed channels
    • Automatically redirect homepage to feed
    • Import subscriptions from YouTube
  • Audio-only mode (and no need to keep window open on mobile)
  • Dark mode
  • Embed support
  • Set default player options (speed, quality, autoplay, loop)
  • Support for Reddit comments in place of YouTube comments
  • Import/Export subscriptions, watch history, preferences
  • Developer API
  • Does not use any of the official YouTube APIs
  • No need to create a Google account to save subscriptions
  • No Code of Conduct
  • No Contributor license Agreement
  • Available in many languages, thanks to Weblate

Screenshots:

Player Preferences Subscriptions

Donate:

Bitcoin (BTC): bc1qfhe7rq3lqzuayzjxzyt9waz9ytrs09kla3tsgr

Monero (XMR): 41nMCtek197boJtiUvGnTFYMatrLEpnpkQDmUECqx5Es2uX3sTKKWVhSL76suXsG3LXqkEJBrCZBgPTwJrDp1FrZJfycGPR


Documentation:

The complete documentation is available on https://docs.invidious.io/ (or alternatively on its own Github repository).


Extensions:

Extensions can be found in the wiki, as well as documentation for integrating it into other projects.


Made with Invidious:

  • FreeTube: A libre software YouTube app for privacy.
  • CloudTube: A JavaScript-rich alternate YouTube player.
  • PeerTubeify: On YouTube, displays a link to the same video on PeerTube, if it exists.
  • MusicPiped: A material design music player that streams music from YouTube.
  • HoloPlay: Funny Android application connecting on Invidious API's with search, playlists and favoris.

Contributing:

Build Status Translation Status

  1. Fork it ( https://github.com/iv-org/invidious/fork ).
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin my-new-feature).
  5. Create a new pull request.

Translation:

  • Log in with an account you have elsewhere, or register an account and start translating at Hosted Weblate.

Contact:

Feel free to join our Matrix room.


Liability:

We take no responsibility for the use of our tool, or external instances provided by third parties. We strongly recommend you abide by the valid official regulations in your country. Furthermore, we refuse liability for any inappropriate use of Invidious, such as illegal downloading. This tool is provided to you in the spirit of free, open software.

You may view the LICENSE in which this software is provided to you here.

  1. Limitation of Liability.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.