feat: youtube handler analizeaza cu Claude; nota Grantham completă
- dashboard/handlers/youtube.py: după descărcare transcriere, cheamă `claude -p` cu un prompt structurat care generează TL;DR + puncte cheie + citate + idei acționabile + secțiuni tematice în proze. Fallback la transcriptul brut dacă Claude eșuează. - nota Grantham: format complet — TL;DR, puncte cheie, citate, idei acționabile, secțiuni tematice în proze curgătoare. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -80,6 +80,49 @@ def _extract_relevant_description(description):
|
|||||||
return '\n'.join(result_lines)
|
return '\n'.join(result_lines)
|
||||||
|
|
||||||
|
|
||||||
|
ANALYSIS_PROMPT = """\
|
||||||
|
Ai primit transcriptul unui video YouTube și descrierea lui. Scrie o notiță KB în română, format Markdown.
|
||||||
|
|
||||||
|
Structura notei (în ordine):
|
||||||
|
1. ## TL;DR — un paragraf de 3-5 rânduri care surprinde esența
|
||||||
|
2. ## Puncte cheie — 6-10 puncte concise (pot fi bullets, dar scurte și dense)
|
||||||
|
3. ## Quote-uri memorabile — 4-6 citate directe din transcript, în limba originală, între ghilimele
|
||||||
|
4. ## Idei acționabile — 4-8 lucruri concrete pe care cititorul le poate face
|
||||||
|
5. Secțiuni tematice cu ## heading — câte teme apar natural, în proze curgătoare (NU bullets), fiecare cu conținut real din transcript: cifre, exemple, mecanisme, argumente
|
||||||
|
|
||||||
|
Nu scrie metadate (titlu, url, tags, dată) — vor fi adăugate separat.
|
||||||
|
Nu scrie fraze introductive despre tine sau despre video. Începe direct cu ## TL;DR.
|
||||||
|
Scrie în română. Citatele rămân în engleză dacă sursa e engleză.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def _analyze_with_claude(title, description, transcript):
|
||||||
|
"""Call claude -p to generate rich analysis of the video."""
|
||||||
|
claude_bin = os.path.expanduser('~/.local/bin/claude')
|
||||||
|
if not os.path.exists(claude_bin):
|
||||||
|
claude_bin = 'claude'
|
||||||
|
|
||||||
|
desc_section = ""
|
||||||
|
if description:
|
||||||
|
desc_section = f"DESCRIERE VIDEO:\n{description[:3000]}\n\n"
|
||||||
|
|
||||||
|
prompt = (
|
||||||
|
f"{ANALYSIS_PROMPT}\n\n"
|
||||||
|
f"TITLU: {title}\n\n"
|
||||||
|
f"{desc_section}"
|
||||||
|
f"TRANSCRIPT (primele 40000 caractere):\n{transcript[:40000]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
result = subprocess.run(
|
||||||
|
[claude_bin, '-p', prompt],
|
||||||
|
capture_output=True, text=True, timeout=300,
|
||||||
|
)
|
||||||
|
if result.returncode == 0 and result.stdout.strip():
|
||||||
|
return result.stdout.strip()
|
||||||
|
log.warning("Claude analysis failed: %s", result.stderr[:300])
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def _process_youtube(url):
|
def _process_youtube(url):
|
||||||
"""Download subtitles, save note."""
|
"""Download subtitles, save note."""
|
||||||
yt_dlp = os.path.expanduser('~/.local/bin/yt-dlp')
|
yt_dlp = os.path.expanduser('~/.local/bin/yt-dlp')
|
||||||
@@ -123,14 +166,32 @@ def _process_youtube(url):
|
|||||||
slug = re.sub(r'[^\w\s-]', '', title.lower())[:50].strip().replace(' ', '-')
|
slug = re.sub(r'[^\w\s-]', '', title.lower())[:50].strip().replace(' ', '-')
|
||||||
filename = f"{date_str}_{slug}.md"
|
filename = f"{date_str}_{slug}.md"
|
||||||
|
|
||||||
# Build optional description block
|
# Description block
|
||||||
desc_block = ""
|
desc_block = ""
|
||||||
if _is_description_about_video(description):
|
if _is_description_about_video(description):
|
||||||
relevant_desc = _extract_relevant_description(description)
|
relevant_desc = _extract_relevant_description(description)
|
||||||
if relevant_desc:
|
if relevant_desc:
|
||||||
desc_block = f"\n## Descriere / Index\n\n{relevant_desc}\n\n---\n"
|
desc_block = f"\n## Descriere / Index\n\n{relevant_desc}\n\n---\n"
|
||||||
|
|
||||||
note_content = f"""# {title}
|
# Claude analysis: TL;DR + puncte cheie + citate + teme în proze
|
||||||
|
print("Running Claude analysis...")
|
||||||
|
analysis = _analyze_with_claude(title, description, transcript)
|
||||||
|
|
||||||
|
if analysis:
|
||||||
|
note_content = f"""# {title}
|
||||||
|
|
||||||
|
**Video:** {url}
|
||||||
|
**Duration:** {duration // 60}:{duration % 60:02d}
|
||||||
|
**Saved:** {date_str}
|
||||||
|
**Tags:** #youtube
|
||||||
|
|
||||||
|
---
|
||||||
|
{desc_block}
|
||||||
|
{analysis}
|
||||||
|
"""
|
||||||
|
else:
|
||||||
|
# Fallback: save raw transcript if Claude fails
|
||||||
|
note_content = f"""# {title}
|
||||||
|
|
||||||
**Video:** {url}
|
**Video:** {url}
|
||||||
**Duration:** {duration // 60}:{duration % 60:02d}
|
**Duration:** {duration // 60}:{duration % 60:02d}
|
||||||
@@ -142,10 +203,6 @@ def _process_youtube(url):
|
|||||||
## Transcript
|
## Transcript
|
||||||
|
|
||||||
{transcript[:15000]}
|
{transcript[:15000]}
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
*Notă: Sumarizarea va fi adăugată de Echo.*
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
constants.NOTES_DIR.mkdir(parents=True, exist_ok=True)
|
constants.NOTES_DIR.mkdir(parents=True, exist_ok=True)
|
||||||
|
|||||||
@@ -60,6 +60,56 @@ He explains:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## TL;DR
|
||||||
|
|
||||||
|
Jeremy Grantham — 87 ani, 60 ani experiență, 165 miliarde $ gestionați — avertizează că suntem în cea mai mare bulă investițională din istoria SUA, generată de AI. Sfatul său: vinde actiunile US tech acum, diversifică în afara SUA (piețe emergente, Europa, Japonia, metale prețioase). Bitcoin merge la zero. În paralel, trage un semnal de alarmă despre criza de fertilitate cauzată de chimicale sintetice (microplastice, pesticide) și despre declinul social al SUA comparabil cu perioadele pre-colaps din istorie.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Puncte cheie
|
||||||
|
|
||||||
|
- **Bula AI = cea mai mare din istoria americană.** Piața la 35-40x câștiguri vs. normalul 17x. Nasdaq a scăzut 82% în bula tech din 2000 — "it is far from unprecedented."
|
||||||
|
- **Nu deține acțiuni US, în special tech.** Alternativele: piețe emergente (+65% în ultimele 12 luni vs S&P +25%), Europa, Japonia, Canada, Australia, metale prețioase 5-10%.
|
||||||
|
- **Wall Street nu te va avertiza niciodată** — conflict de interese structural. 400 de analiști credeau că piața va cădea în 1999, niciunul nu a spus-o public.
|
||||||
|
- **SpaceX = South Sea Bubble modern.** Prospectul promite mining asteroizi și adresează 25% din PIB-ul global — absurd prin definiție.
|
||||||
|
- **Mag 7: de la 7 monopoluri separate la 7 gladiatori în același ring.** Toți se bat pe AI. "There'll only be one survivor, they think."
|
||||||
|
- **Numărul de spermatozoizi a scăzut 50% în 50 de ani.** Microplastice, pesticide, chimicale sintetice — SUA are reglementări mult mai slabe decât UE.
|
||||||
|
- **Prețurile imobiliare trebuie să scadă 30%** doar ca să ajungă la 6-7x venit (față de normalul istoric de 3-4x).
|
||||||
|
- **Bitcoin va merge la zero.** "An unnecessary piece of nonsense that facilitates nothing except criminals."
|
||||||
|
- **SUA = inegalitate la nivel de Brazilia/Mexic (Gini).** Din 1975, câștigurile merg aproape integral în top 10%.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quote-uri memorabile
|
||||||
|
|
||||||
|
> "The greatest investment bubble in American history — AI. And the bigger the bubble, the bigger the bust."
|
||||||
|
|
||||||
|
> "From 1929 onwards, the Goldman Sachses of the world have never said to you, 'Get out of the market.' Never. It is simply lousy business."
|
||||||
|
|
||||||
|
> "You get shot not for underperforming in a bear market. You get shot for not making money when your neighbor is making a ton in a bull market."
|
||||||
|
|
||||||
|
> "Amazon went up 6-7 times in '99. In the crash it went down 92%. Check it — it's such a remarkably large number. And then out of the wreckage, it inherited the retail world."
|
||||||
|
|
||||||
|
> "The only people who think you can have compound growth on a finite planet are madmen and economists." — Kenneth Boulding (citat de Grantham)
|
||||||
|
|
||||||
|
> "Get out of the most dangerous part, and do it now. Don't wait for help because no help is coming."
|
||||||
|
|
||||||
|
> "Crypto is an unnecessary piece of nonsense that facilitates nothing except criminals moving money that they can't be seen."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Idei acționabile
|
||||||
|
|
||||||
|
- Evaluează expunerea la acțiuni US tech și reduce-o
|
||||||
|
- Cercetează ETF-uri world ex-US: piețe emergente, Europa, Japonia
|
||||||
|
- Adaugă 5-10% metale prețioase (aur, argint)
|
||||||
|
- Evită plasticul în contact cu alimentele, în special la cald
|
||||||
|
- Preferă cosmetice/îngrijire cu certificare europeană (fără perturbatori endocrini)
|
||||||
|
- Filtrează apa potabilă
|
||||||
|
- Cumpără US Treasury bonds direct pe treasurydirect.gov (fără comisioane)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Cine este Jeremy Grantham
|
## Cine este Jeremy Grantham
|
||||||
|
|
||||||
Jeremy Grantham are 87 de ani și 60 de ani de experiență în investiții. A intrat în domeniu în 1968, când nu existau modele matematice și piața era dominată de "fiii eșuați ai oamenilor bogați care lucrau la JP Morgan." A co-fondat firma GMO (Grantham, Mayo, Van Ottalo), care a ajuns să gestioneze 165 de miliarde de dolari la vârf. Din profitul personal de peste un miliard de dolari, a donat 90-95% într-o fundație proprie — Grantham Foundation for the Protection of the Environment — care investește în green tech pentru combaterea schimbărilor climatice. Firma gestionează azi 85 de miliarde. Se descrie ca specialist în orizont lung de timp și nivel înalt de abstractizare: "What is really going on here? And what are people missing?"
|
Jeremy Grantham are 87 de ani și 60 de ani de experiență în investiții. A intrat în domeniu în 1968, când nu existau modele matematice și piața era dominată de "fiii eșuați ai oamenilor bogați care lucrau la JP Morgan." A co-fondat firma GMO (Grantham, Mayo, Van Ottalo), care a ajuns să gestioneze 165 de miliarde de dolari la vârf. Din profitul personal de peste un miliard de dolari, a donat 90-95% într-o fundație proprie — Grantham Foundation for the Protection of the Environment — care investește în green tech pentru combaterea schimbărilor climatice. Firma gestionează azi 85 de miliarde. Se descrie ca specialist în orizont lung de timp și nivel înalt de abstractizare: "What is really going on here? And what are people missing?"
|
||||||
@@ -148,6 +198,3 @@ Istoria, spune Grantham, nu oferă exemple de reducere pașnică a inegalități
|
|||||||
|
|
||||||
Referitor la unde să trăiești, refuză să răspundă direct ("it might tend to incriminate me"), dar subînțelesul e clar: nu SUA. Menționează că fiul său cultivă culturi și crește animale pe o fermă mică — abilități practice pentru un viitor în care complexitatea civilizațională poate să "unravel."
|
Referitor la unde să trăiești, refuză să răspundă direct ("it might tend to incriminate me"), dar subînțelesul e clar: nu SUA. Menționează că fiul său cultivă culturi și crește animale pe o fermă mică — abilități practice pentru un viitor în care complexitatea civilizațională poate să "unravel."
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
*Notă: Sumarizarea va fi adăugată de Echo.*
|
|
||||||
|
|||||||
Reference in New Issue
Block a user