EsempioscriptadvancedEseguibileguided-flow
Servizio
Esempio rieseguibile advanced di tipo script che usa requests.
Fatti chiave
- Livello
- advanced
- Runtime
- Python • Requests
- Pattern
- Flusso ispezionabile con confini di sistema visibili
- Interazione
- Sandbox live • Script
- Aggiornato
- 14 marzo 2026
Naviga questo esempio
Libreria
Sfoglia gli esempiRiapri la libreria completa per confrontare pattern vicini e percorsi collegati.Interazione
Esegui ora nel sandboxProva l'interazione direttamente nella superficie guidata di questo esempio.Sorgente
Apri codice completoLeggi l'implementazione reale, i punti evidenziati e i requisiti runtime.MCP
Chiama via MCPUsa la stessa risorsa dentro agenti, export deterministici e setup MCP.
Principi collegati
service.py
python
import os
from requests import Session
from youtube_transcript_api import YouTubeTranscriptApi
from youtube_transcript_api.formatters import (
TextFormatter,
)
from youtube_transcript_api.proxies import WebshareProxyConfig
from .utils import extract_video_id
class YouTubeTranscriptService:
"""Service class wrapping youtube-transcript-api with proxy support."""
def __init__(self, use_proxy: bool = True):
self.api = self._create_api(use_proxy)
def _create_api(self, use_proxy: bool) -> YouTubeTranscriptApi:
"""Create API instance with optional proxy support."""
if not use_proxy:
return YouTubeTranscriptApi()
proxy_username = os.getenv("WEBSHARE_USERNAME")
proxy_password = os.getenv("WEBSHARE_PASSWORD")
if proxy_username and proxy_password:
proxy_config = WebshareProxyConfig(
proxy_username=proxy_username,
proxy_password=proxy_password,
)
http_client = Session()
http_client.proxies = proxy_config.to_requests_dict()
return YouTubeTranscriptApi(http_client=http_client)
return YouTubeTranscriptApi()
def fetch(
self,
video_url_or_id: str,
):
"""Fetch transcript."""
video_id = extract_video_id(video_url_or_id)
return self.api.fetch(video_id)
def get_transcript_text(
self,
video_url_or_id: str,
) -> str:
"""Get transcript as plain text."""
transcript = self.fetch(video_url_or_id)
formatter = TextFormatter()
return formatter.format_transcript(transcript)
Principi correlati
- P6visibilityEsporre uno stato operativo significativo, non la complessità internaPresentare lo stato del sistema in linguaggio e strutture rilevanti per l'utente, piuttosto che esporre dettagli interni di basso livello che non supportano l'azione o la comprensione.Apri il principio →
- P7trustStabilire fiducia attraverso l'ispezionabilitàGli utenti dovrebbero essere in grado di esaminare come è stato prodotto un risultato quando la fiducia, la responsabilità o la qualità della decisione sono importanti.Apri il principio →
- P8trustRendere espliciti i passaggi, le approvazioni e i blocchiQuando il sistema non può procedere, la ragione dovrebbe essere immediatamente visibile, insieme a qualsiasi azione richiesta dall'utente o da un'altra dipendenza.Apri il principio →
- P9orchestrationRappresentare il lavoro delegato come un sistema, non solo come una conversazioneDove il lavoro coinvolge più passaggi, agenti, dipendenze o attività concorrenti, dovrebbe essere rappresentato come un sistema strutturato piuttosto che solo come un flusso di messaggi.Apri il principio →