Note: YouTube is serving thumbnails from 2 servers:
//img.youtube.com//i.ytimg.com
Examples are with //i.ytimg.com server just because it’s shorter, no other particular reason. You can use both.
-
Player Background Thumbnail (480x360):
| // I'm tired of extensions that automatically: | |
| // - show welcome pages / walkthroughs | |
| // - show release notes | |
| // - send telemetry | |
| // - recommend things | |
| // | |
| // This disables all of that stuff. | |
| // If you have more config, leave a comment so I can add it!! | |
| { |
| ### Requirements: Federated Azure domain, usernames are consistent between Keycloak and Azure AD, | |
| ### Microsoft Graph Modules for Powershell. | |
| ### Azure domain and Keycloak realm names maybe different. | |
| ### Primary source of group and user information is Keycloak. | |
| ### Admin login for Keycloak is user-based, admin login for Azure AD is certificate based (app registration). | |
| ### $KC_-constants are related to Keycloak, $MG_ are related to Microsoft Graph/Azure AD | |
| ### The necessary ImmutableId is generated by converting the LDAP_ID from Keycloak. Your Keycloak | |
| ### setup may differ. | |
| ### Using MimeKit/MailKit for mail alerts | |
| # Change Settings here: |
| // Core assets | |
| let coreAssets = []; | |
| // On install, cache core assets | |
| self.addEventListener('install', function (event) { | |
| // Cache core assets | |
| event.waitUntil(caches.open('app').then(function (cache) { | |
| for (let asset of coreAssets) { | |
| cache.add(new Request(asset)); |
Note: YouTube is serving thumbnails from 2 servers:
//img.youtube.com//i.ytimg.comExamples are with //i.ytimg.com server just because it’s shorter, no other particular reason. You can use both.
Player Background Thumbnail (480x360):
⚠️ Note 2023-01-21
Some things have changed since I originally wrote this in 2016. I have updated a few minor details, and the advice is still broadly the same, but there are some new Cloudflare features you can (and should) take advantage of. In particular, pay attention to Trevor Stevens' comment here from 22 January 2022, and Matt Stenson's useful caching advice. In addition, Backblaze, with whom Cloudflare are a Bandwidth Alliance partner, have published their own guide detailing how to use Cloudflare's Web Workers to cache content from B2 private buckets. That is worth reading,
| {# | |
| Relies mostly on a meta array containing appropriate values. | |
| site_name is a parameter set as a Twig Global | |
| default_share_image is a fallback parameter set as a Twig Global | |
| #} | |
| <meta charset="UTF-8"> | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <meta name="robots" content="index, follow" /> | |
| <meta property="og:type" content="website" /> |
| #EXTM3U | |
| #EXTINF:-1,Digitally Imported - Ambient | |
| http://pub1.diforfree.org:8000/di_ambient_hi | |
| #EXTINF:-1,Digitally Imported - Big Room House | |
| http://pub1.diforfree.org:8000/di_bigroomhouse_hi | |
| #EXTINF:-1,Digitally Imported - Breaks | |
| http://pub1.diforfree.org:8000/di_breaks_hi |
| #!/bin/bash | |
| # This simple bash script will auto-update a CloudFlare DNS entry if a computer's public IP address changes. | |
| # Simply place it in a folder called /etc/ddns and add a cron job to call it every minute or so. | |
| # The five configuration options below are specific to your account and must be set. | |
| DOMAIN_NAME="domain.name.tld" | |
| AUTH_EMAIL="name@email.tld" | |
| AUTH_KEY="__cloudflare_auth_key__" | |
| ZONE_ID="__cloudflare_zone_identifier__" | |
| RECORD_ID="__cloudflare_record_identifier__" |
| import requests | |
| import base64 | |
| from tqdm import tqdm | |
| master_json_url = 'https://178skyfiregce-a.akamaihd.net/exp=1474107106~acl=%2F142089577%2F%2A~hmac=0d9becc441fc5385462d53bf59cf019c0184690862f49b414e9a2f1c5bafbe0d/142089577/video/426274424,426274425,426274423,426274422/master.json?base64_init=1' | |
| base_url = master_json_url[:master_json_url.rfind('/', 0, -26) + 1] | |
| resp = requests.get(master_json_url) | |
| content = resp.json() |