Crawl a ChatGPT shared conversation link, extract all claims and source URLs, fact-check each source, analyze relevance to a specified paper (default: Paper-1), and save verified results as an Obsidian note.
Crawl a ChatGPT shared conversation, verify all claims against their sources, analyze relevance to the user's research papers, and save as a structured Obsidian note.
chatgpt.com/share/...)https://chatgpt.com/share/...)Paper-1)
Paper-1, Paper-2, Paper-3, Paper-4, or any note name/pathUse Playwright to render the JavaScript-heavy ChatGPT shared page and extract content.
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto(URL, wait_until='networkidle', timeout=30000)
page.wait_for_timeout(8000)
# Extract conversation text
full_text = page.inner_text('body')
# Extract all source URLs (citations are in small badge-like <a> elements)
links = page.eval_on_selector_all('a[href]',
'els => els.map(e => ({text: e.innerText.trim(), href: e.href, class: e.className}))')
# Filter for academic/data sources (exclude chatgpt.com, openai.com UI links)
source_links = [l for l in links
if l['href'] and 'chatgpt.com' not in l['href'] and 'openai.com' not in l['href']
and any(domain in l['href'] for domain in [
'zenodo', 'pubmed', 'sciencedirect', 'doi.org', 'arxiv',
'springer', 'wiley', 'mdpi', 'nature', 'ieee', 'scopus',
'github', 'nasa', 'nrel', 'nih.gov'
])]
browser.close()
Fallback: If Playwright fails, ask user to paste conversation text directly.
From the conversation text, identify all verifiable factual claims:
Create a structured claim list:
Claim #1: [claim text]
Source cited: [URL or "none"]
Category: dataset / publication / numerical / institutional
Visit each extracted URL to verify against the original source.
Strategy by domain:
| Domain | Method | What to verify |
|---|---|---|
| Zenodo | Playwright or WebFetch | Record exists, title matches, license, size, authors |
| PubMed | WebFetch (Playwright gets 403) | PMID exists, title/authors/journal match, DOI |
| ScienceDirect | WebFetch (Playwright often blocked) | Article exists, DOI matches, content aligns |
| DOI.org | WebFetch https://doi.org/[DOI] | Resolves to actual paper |
| arXiv | WebFetch | Paper exists, title/authors match |
| GitHub | gh CLI or WebFetch | Repo exists, description matches |
Verdict categories:
Read the target paper note from the vault to understand its structure and research gaps.
Default target: 03-projects/(Research) Paper-1 Review Multiscale Fatigue AI DT.md
Relevance mapping process:
Save to 01-inbox/ following vault conventions. Write note body in Korean with English technical terms in parentheses.
Filename: (Resource) [Descriptive Title].md
Frontmatter template:
---