Open Ared0 opened 2 years ago
Yes, ci stavo pensando anch'io, usando un formato non a secondi com'è ora ma HH:MM:SS, un array preso da un file, si.
La follia qui sarebbe anche poter aggiungere lo scraping dei timestamp dal video e usare quelli per fare le clip, ma questo ora non ci serve, è solo un piano futuro di conquista :-D
Se youtube invia le pagine già renderizzate non dovrebbe essere troppo difficile. Sarebbe più problematico se ti invia la versione in JS da far renderizzare
Inanto ho inquadrato due formati per il file dei timestamps:
Primo scenario: Start:End
HH:MM:SS,HH:MM:SS
HH:MM:SS,HH:MM:SS
HH:MM:SS,HH:MM:SS
...
Questo formato è per un eventuale file, ogni riga una clip, start end separati da virgola e per calcolare i secondi si splitta (':') poi si calcola il resto.
Da considerare in caso il video duri meno di un'ora o la clip sia nella prima ora quindi se splittando non abbiamo `HH' lo si aggiunge manualmente (banalmente si aggiunge uno 0 int), alla fine ciclo for e si creano tutte le clip.
Seconodo scenario (da tenere in considerazione per il futuro):
00:00 Intro
00:10 Primo capitolo
00:20 Secondo capitolo
...
In questo caso se si dovessero prendere i capitoli da YT si dovrà creare un array (lista o come si chiama in python) prendendo il tempo fra i capitoli (00:00,00:10 ecc), per calcolare i secondi abbiamo già la funzione sopra. Questo non è indispensabile per ora.
Qui provo a lavorarci io e nel caso ti chiedo aiuto.
Ho introdotto due funzioni per parsare eventuale file, sia con formato chapters yt che formato start:end, la funzione parse_file
ritorna una lista prendendo le righe che definiscono il timestamp.
L'unico problema al momento è gestire la lista presa dai chapters per riparsarla in formato start:end
, ma al momento devo anche lavorare e metto in pausa.
Ho aggiunto le due versioni dei file nella cartella dei test, ho anche aggiunto qualche unit test ovviamente, se riusciamo anche per altre funzionalità ad aggiungere i vari test sarebbe ottimo.
Banalmente ho chiamato chapters.txt
il file dei chapters (00:00 Intro
, ecc)
e timestamps.txt
il file per il formato start:end
Chiedo anche a te come vogliamo gestire la posizione dei file.
Se lavoro a uno scraper per le descrizioni e convertiamo direttamente in quella fase i chapter nel formato start:end?
Cosi ci generiamo il file degli input in automatico in un formato unico
Mi sembra sia già compreso con pytube la description, ora non sono al pc, vedi prima li così c'è meno da lavorare.
Ho aggiunto una funzione per convertire i chapter format in timestamp format, ho fatto una prova prendendo i chapter dalla description e crea le clip correttamente, quindi perfetto dieri.
Al momento ho commentato la parte che prende il testo dalla descrizione perché direi che si debba rivedere il workflow da CLI prima.
Tagliare più clip dallo stesso video, magari specificando i minutaggi in un file di testo esterno.