]> git.gir.st - subscriptionfeed.git/blob - README.md
implement csrf protection
[subscriptionfeed.git] / README.md
1 # Unnamed Youtube Frontend
2
3 Note: this is a work in progress, still unreleased software. Feel free to look around, but keep in mind that this repository will move servers for its public release.
4
5 Contributors wanted! Please send me an email (see commit log) or contact `girst` on irc.freenode.net (hanging out in `#invidious` for now)
6
7 Test Instance: http://delta.gir.st:8000/ (will move in the future)
8
9 TODO:
10 - implement authentication
11 - abstract database access, implement nice config system
12 - fetch cipher.txt and cache it in memory
13 - use 'card'-css for Info- and Endcards
14 - don't hardcode reddit-links in the template
15 - use html error pages for watch?show=metadata
16 - use invidious api for channels/playlists/search (with query parameter provider=https://invidio.us/api or similar)
17 - rewrite frontend-'card' with flexbox
18 https://css-tricks.com/snippets/css/a-guide-to-flexbox/
19 - write documentation, theory of operation, overview diagram, risk (of getting banned) assessment, ...
20 - provide gunicorn configs, config.ini, ...
21 - organize repo directory structure, automate install/setup somewhat
22 - asynchronically call update-subs and pull-subs after subscribing to a channel
23 - we are currently misclassifying some subscription videos as old, when they are uploaded unlisted and made public later. this could be solved by querying get_video_info for websub-videos that are not yet in the database to get the actual published date.
24
25 # Installation
26
27 see INSTALL file
28
29 # Usage
30
31 Since user authentication is not yet implemented, users are for now identified by a randomized token. To "log in", just visit `/feed/subscriptions?token=....`. at the bottom, click 'Manage Subscriptions' and paste the UC...-URLs of channels you want to subscribe to.
32
33 If no token is specified, it defaults to `guest`. Since this is a readonly account, you can populate it by directly writing into the database:
34
35 first, prepare a file (guest.csv) of channel ids like so:
36 UCxxxxxxxxxxxxxxxxxxxxxxxx,guest,channel
37 then from the sqlite3 console, issue:
38 .mode csv
39 .import guest.csv subscriptions
40
41
42 # Notes
43 - caching external api requests
44 currently using in-memory-backend, which is purged every 10minutes. a real installation should use redis, which should scale better and handle purging for us.
Imprint / Impressum