README - frontends - front-ends for some sites (experiment)
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       README (1742B)
       ---
            1 Frontends for:
            2 * Youtube
            3 
            4 
            5 Status
            6 ------
            7 
            8 Actively maintained:
            9 * Youtube
           10 
           11 Unmaintained and archived:
           12 * Duckduckgo
           13 * Reddit
           14 * Twitch (not working anymore, it also now required 2FA and OAUTH).
           15 
           16 
           17 Dependencies
           18 ------------
           19 
           20 * C compiler.
           21 * LibreSSL + libtls.
           22 * make
           23 
           24 
           25 Build
           26 -----
           27 
           28 To compile a specific front-end:
           29 
           30 $ make youtube
           31 
           32 or all using:
           33 
           34 $ make
           35 # make install
           36 
           37 
           38 Features
           39 --------
           40 
           41 - Search videos.
           42 - Doesn't use JavaScript.
           43 - Doesn't use (tracking) cookies.
           44 - CSS is optional.
           45 - Multiple interfaces available: CGI web, CLI, gopher (gph), this is a
           46   work-in-progress.
           47 - Shows an Atom feed of the user/channel.
           48 - Doesn't use or require the Google API.
           49 - CGI interface works nice in most browsers, including text-based ones.
           50   On OpenBSD it runs "sandboxed" and it can be compiled as a static-linked
           51   binary with pledge(2), unveil(2) in a chroot.
           52 
           53 
           54 Cons/caveats
           55 ------------
           56 
           57 - Order by upload date is incorrect (same as on Youtube).
           58 - Some Youtube features are not supported.
           59 - Uses scraping so might break at any point.
           60 
           61 
           62 Install HTTP CGI
           63 ----------------
           64 
           65 Nginx + slowcgi example:
           66 
           67         location /idiotbox/css/.* {
           68                 root /home/www/domains/www.codemadness.org/htdocs/idiotbox/css;
           69         }
           70 
           71         location ~ ^/idiotbox(/|/\?.*)$ {
           72                 include /etc/nginx/fastcgi_params;
           73                 fastcgi_pass  unix:/run/slowcgi.sock;
           74                 fastcgi_param SCRIPT_FILENAME  /cgi-bin/idiotbox;
           75                 fastcgi_param SCRIPT_NAME  /cgi-bin/idiotbox;
           76                 fastcgi_param REQUEST_URI  /cgi-bin/idiotbox;
           77         }
           78 
           79 httpd + slowcgi example:
           80 
           81         location "/idiotbox" {
           82                 root "/cgi-bin/idiotbox.cgi"
           83                 fastcgi
           84         }
           85 
           86 
           87 When using a chroot make sure to copy /etc/resolv.conf and /etc/ssl/cert.pem.
           88 
           89 To test from the command-line you can do:
           90 
           91         QUERY_STRING="q=funny+cat+video" ./main | sed 1,2d | lynx -stdin