Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Projeto Delphi

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Duvida Projeto Delphi

    Eai pessoal , estou aqui mais uma vez pra tira uma duvida, agora começou ferias sobrou um espaço e to voltando a programar no delphi. E tive a ideia de fazer um programa que baixe os videos do youtube , pois bem , me deparei com o problema pois eu nao tenho nenhuma ideia de como baixar um video do youtube pelo delphi , mas eu estava pensando em usar um site como forma de mecanismo de download. Ou se possivel escrever o codigo em um html e salvar na pasta no programa assim o programa executaria o codigo , sem precisar de internet no primeiro momento !.
    se alguem tive outra solução sem usar o mecanismo do site me ajude porvavor e gostaria de saber como converter o video de flv para avi ou wmv ou melhor como fazer um mecanismo disso tudo , pessoa ajuda e nao quero nada pronto so me deêm uma luz !


    desde já grato !

  • Font Size
    #2
    Bom, para fazer o download do vídeo você pode usar o componente IdHTTP da aba Indy Clients.

    Exemplo de download com ele:
    Código:
    var
    FS: TFileStream;
    begin
    FS:=TFileStream.Create('Exemplo.txt',fmCreate or fmOpenWrite);
    IdHTTP1.Get('http://www.exemplo.com.br/Exemplo.txt',FS);
    FS.Free;
    Agora para a conversão eu não sei pois nunca tentei... Mas se você procurar provavelmente vai encontrar algum componente para isso.

    Comment


    • Font Size
      #3
      amigo entendi mais ou menos o se codigo mas nao consegui baixar nada com ele ou , mellhor nao consegui faze-lo funcionar em meu projeto , poderia me explicar haha , é que nao manjo muito nessa parte ! ;/ desde já grato !

      Comment


      • Font Size
        #4
        entao lek ,consegui fazer funcionar , mas so para baixar arquivos diretos como por exemplo Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
        nao consegui fazer para o youtube que vem nesse tipo de link o video
        entendeo ? [ame]http://www.youtube.com/watch?v=D9WXkQeXQyQ[/ame]

        desde ja grato !

        Comment


        • Font Size
          #5
          Bom cara acontece que o YouTube carrega o vídeo de um link direto, logo, tudo o que você precisa fazer é pegar esse link. Eu fiz aqui uma função mas não vai se acostumando, só fiz ela porque achei interessante e aproveitei pra guardar aqui:

          Código:
          function getVideoURL(Link: String):String;
          var
          HTTP: TIdHTTP;
          Site: String;
          pos1, pos2: Integer;
          begin
          HTTP:=TIdHTTP.Create(nil);
          Site:=HTTP.Get(Link);
          pos1:=pos('img.src = ''',Site)+Length('img.src = ''');
          pos2:=pos('img = null;',Site)-pos1;
          Site:=Copy(Site,pos1,pos2);
          Site:=Trim(Site);
          Site:=StringReplace(Site,'\','',[rfReplaceAll]);
          Site:=StringReplace(Site,'generate_204','videoplayback',[rfReplaceAll]);
          Delete(Site,Length(Site)-1,2);
          Result:=Site;
          HTTP.Free;
          end;
          Agora basta combinar as duas funções e voilà

          Comment


          • Font Size
            #6
            amigo , obrigadão , mas eu sou iniciante e nao entendi o porque de alguns comando você poderia me ensinar pra que que serve cada um assim evitaria algumas perguntas relacionadas nao so minhas como de outros , e se eu entendi ele vai pega o link do video direto no site do youtube certo ?

            Comment


            • Font Size
              #7
              Explicação

              Bom irei explicar o comando aqui:

              Código:
              function getVideoURL(Link: String):String;
              var
              HTTP: TIdHTTP; //Componente IdHTTP serve para requisições HTTP
              Site: String; //Site uma variável para armazenar o código fonte da página
              pos1, pos2: Integer; //Duas variáveis para armazenar as posições
              begin
              HTTP:=TIdHTTP.Create(nil); // Cria o IdHTTP
              Site:=HTTP.Get(Link); //Atribuo a variável "Site" o código fonte da página
              pos1:=pos('img.src = ''',Site)+Length('img.src = '''); //Localizo a string "img.src="" no código fonte
              pos2:=pos('img = null;',Site)-pos1; //Localizo a string "img = null;" no código fonte
              Site:=Copy(Site,pos1,pos2); //Deixo na variável "Site" apenas a parte entre pos1 e pos2
              Site:=Trim(Site); //Retiro os espaços em branco
              Site:=StringReplace(Site,'\','',[rfReplaceAll]); //Substituo as "\" por "", ou seja, apago as "\"
              Site:=StringReplace(Site,'generate_204','videoplayback',[rfReplaceAll]); //Substituo generate_204" por "videoplayback"
              Delete(Site,Length(Site)-1,2); //Deleto o final cujo valor não me interessa
              Result:=Site; //O resultado da função será o valor de "Site", que após esses tratamentos só resta o link para o vídeo
              HTTP.Free; //Libero o IdHTTP pois não vou utiliza-lo mais
              end;
              Exemplo:

              Código:
              Edit1.Text:=getVideoURL('http://www.youtube.com/watch?v=HV9cSGcKvM4');
              Assim ele irá retornar um link direto para o vídeo que poderá ser usado junto com o outro código para realizar o download do vídeo

              Caso não tenha entendido alguma coisa basta avisar que eu irei tentar explicar melhor

              Sem mais

              Comment


              • Font Size
                #8
                Código:
                function getVideoURL(Link: String):String;
                var
                HTTP: TIdHTTP;
                Site: String;
                pos1, pos2: Integer;
                begin
                HTTP:=TIdHTTP.Create(nil);
                Site:=HTTP.Get(Link);
                pos1:=pos('img.src = ''',Site)+Length('img.src = ''');
                pos2:=pos('img = null;',Site)-pos1;
                Site:=Copy(Site,pos1,pos2);
                Site:=Trim(Site);
                Site:=StringReplace(Site,'\','',[rfReplaceAll]);
                Site:=StringReplace(Site,'generate_204','videoplayback',[rfReplaceAll]);
                Delete(Site,Length(Site)-1,2);
                Result:=Site;
                HTTP.Free;
                end;
                amigo , nao sei o que acontece , pode ser que eu esteja colocando o codigo no lugar errado , mas nao esta indo D:

                Comment


                • Font Size
                  #9
                  Bom cara aqui pelo fórum fica difícil dar uma ajuda mais específica, então me adicione no MSN: mateustoyama@hotmail.com

                  Comment


                  • Font Size
                    #10
                    demoro aceita la meu msn : idhbaixo_paises@hotmail.com

                    Comment

                    X
                    Working...
                    X