HN/YouTube sidebar cleanup + auto-discover integrations from GitHub profile social links#15
Conversation
Agent-Logs-Url: https://github.com/HanClinto/SimpleGitBlog/sessions/067cd850-bbc4-42f2-aaef-3427ecee8660 Co-authored-by: HanClinto <796749+HanClinto@users.noreply.github.com>
Agent-Logs-Url: https://github.com/HanClinto/SimpleGitBlog/sessions/067cd850-bbc4-42f2-aaef-3427ecee8660 Co-authored-by: HanClinto <796749+HanClinto@users.noreply.github.com>
…, emoji consistency) Agent-Logs-Url: https://github.com/HanClinto/SimpleGitBlog/sessions/067cd850-bbc4-42f2-aaef-3427ecee8660 Co-authored-by: HanClinto <796749+HanClinto@users.noreply.github.com>
…kernews provider) Agent-Logs-Url: https://github.com/HanClinto/SimpleGitBlog/sessions/067cd850-bbc4-42f2-aaef-3427ecee8660 Co-authored-by: HanClinto <796749+HanClinto@users.noreply.github.com>
|
@copilot Investigate what it would take to add LinkedIn, Facebook, and Twitter / X as data sources from the social links present on Github. Would each of those require an API key, or is there a way to pull useful information without one? |
Great question! Here's a thorough breakdown of what's feasible for each platform: Twitter / XShort answer: Not realistically usable without a paid API key. Twitter removed its free public RSS feeds years ago, and in 2023 they eliminated even the free read tier of the API. As of 2025:
Verdict: ❌ Not viable without a paid API key or a logged-in cookie. The Short answer: API key required for anything useful; scraping is fragile and against ToS.
Verdict: ❌ Not viable without either an API key (hard to get) or fragile scraping that will break regularly. Short answer: No official key-free path; third-party scrapers exist but are unreliable.
Verdict: ❌ Not reliably viable without a paid third-party service or an app-reviewed Graph API token. Comparison Table
Practical Path ForwardAll three platforms are already discovered from the GitHub profile social links (
This keeps SimpleGitBlog's core value proposition intact: zero-config, no API keys required, no fragile scrapers. If you (or a fork owner) want to add Twitter embeds or LinkedIn post cards in the future, the cleanest path would be to add an optional env var (e.g., |
HN was dumping all items into the main feed with cluttered formatting and no pagination strategy. YouTube playlist ingestion was broken and had no channel support. No zero-config story existed — forks required manual env var setup for any integrations.
GitHub profile social links as default config source
New
blog/ingestors/github_profile.pycallsGET /users/{owner}+GET /users/{owner}/social_accountsat build start. When env vars are absent, social links auto-configure integrations:hackernews?id=query param)youtubeEnv vars (
HN_USERNAME,YOUTUBE_CHANNEL_IDS,YOUTUBE_PLAYLIST_IDS) always take precedence. Auto-discovery is noted explicitly on the config/transparency page.HN cleanup
submitted?id=andthreads?id=— pagination deferred to HN_MAX_HITS_PER_TYPEreduced 100 → 20 (individual post pages still generated for full content)YouTube
YOUTUBE_CHANNEL_IDSsupport alongside existingYOUTUBE_PLAYLIST_IDS; accepts@handleorUCxxxxxx@handleresolved to channel ID by scraping the RSS<link>tag from the channel page — no API key needed?channel_id=) fetches up to 15 most recent uploads; playlists remain a separate explicit config (YOUTUBE_PLAYLIST_IDS) — auto-discovery of all playlists on a channel is not possible without the YouTube Data APIview_more_urlin each video's metadata drives "View my channel" / "View full playlist" links in sidebarLayout
Config/transparency page