Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: francesco - Novembre 11, 2023, 03:56:17 pm

Titolo: scaricare un video
Inserito da: francesco - Novembre 11, 2023, 03:56:17 pm
ho trovato questo semplice codice in pascal che mi permette di scaricare un testo.

Codice: [Seleziona]
procedure TForm1.Button1Click(Sender: TObject);
var
  stream: TMemoryStream;
  err: String;
  URL: String = 'https://www.youtube.com/watch?v=v_82782h180';    //'https://www.ietf.org/rfc/rfc2445.txt';
  F:movie;
  begin
  stream := TMemoryStream.Create;
  try
    if not Download(URL, stream, err) then
      ShowMessage('Error: ' + err);

    stream.Position := 0;
     AssignFile(F, 'C:\Pippo.avi');

   /// Memo1.Lines.LoadFromStream(stream);
  finally
    stream.Free;
  end;
end;     

ma se volessi scaricare un video e trasformarlo in mp4 e poi visualizzarlo......
come posso fare?

grazie
Titolo: Re:scaricare un video
Inserito da: francesco - Novembre 11, 2023, 04:08:08 pm
F LO MESSO A VARIANT ma non mi accette ne movie ne variant...
Titolo: Re:scaricare un video
Inserito da: bonmario - Novembre 11, 2023, 04:35:53 pm
Allora, per scaricare i files, io uso un componente esterno, synapse, che trovi qui: http://www.ararat.cz/synapse/doku.php
Qui invece alcuni esempi di codice per fare il download: https://wiki.freepascal.org/Synapse#From_an_HTTP_server

Una volta scaricato il file, lo puoi convertire con un tool da riga comando. Io ad esempio uso ffmpeg su Linux.

Ciao, Mario
Titolo: Re:scaricare un video
Inserito da: DragoRosso - Novembre 11, 2023, 06:01:54 pm
Comunque non tentare di scaricare o visualizzare video da YouTube o simili, usano sistemi antistreaming per cui quello che scarichi non è ne musica ne video.

F LO MESSO A VARIANT ma non mi accette ne movie ne variant...

F deve essere di tipo FILE o TEXTFILE.

Ma non ti serve per scrivere quando hai letto con lo streaming, TMemoryStream dovrebbe avere un metodo per scrivere direttamente in un file (SaveTo mi pare).
Titolo: Re:scaricare un video
Inserito da: francesco - Novembre 11, 2023, 07:42:29 pm
purtroppo io ho la versione 1 di lazarus e sinapse non funziona. Ci deve errere un modo di scaricare i file da youtube in quanto ci sono software che lo fanno. CHISSA'.
grazie.
Titolo: Re:scaricare un video
Inserito da: DragoRosso - Novembre 12, 2023, 11:32:38 am
Ci sono certo e puoi farlo anche tu, ci vuole però un pò di pratica ... devi pensare che YouTube ha Google dietro ....

Se te la senti potresti partire da qui:

https://prog.olsztyn.pl/paslibvlc/ (https://prog.olsztyn.pl/paslibvlc/)

è un wrapper (e non solo) per VLC (che devi avere installato) e con questo puoi visualizzare i video da YouTube.

Ci sono anche gli esempi per fare "un sacco di cose" e meraviglia ... funziona con Lazarus 1.8.4  ;D

Io lo uso in Windows (e lo stò usando da più di un decennio) e non ho mai avuto problemi, ma lo scopo era professionale e lo scarico da YouTube non era l'obiettivo.

Consiglio di scaricare l'ultimo VLC, non sò però se è compatibile con (e soprattutto pronto per) Linux ...

Ciao

P.S.: YouTube aggiorna continuamente l'antistreaming, quindi se dovessi riuscire a "streammare" qualcosa, non è detto che la condizione sia stabile. Potresti tranquillamente vedere video per una settimana e poi non riuscire più. L'aggiornamento di VLC risolverà temporaneamente la cosa ... ma solo temporaneamente.
Titolo: Re:scaricare un video
Inserito da: nomorelogic - Novembre 12, 2023, 03:43:35 pm
Consiglio di scaricare l'ultimo VLC, non sò però se è compatibile con (e soprattutto pronto per) Linux ...

il progetto VLC è open source e cross platform da parecchio tempo
io lo uso da più di 10 anni su linux (e fatto qualche programma con fpc e PasLibVLC)
(tra l'altro i sorgenti si possono  scaricare e sono sono in formato tar.xz)

quì trovate le piattaforme supportate
https://www.videolan.org/vlc/index.it.html



Titolo: Re:scaricare un video
Inserito da: francesco - Novembre 12, 2023, 06:58:21 pm
OK grazie ci daro' una occhiata approfondita

francesco