Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Atualizado 01/05] Passo a Passo para executar o projeto pela primeira vez #89

Closed
hebertlima opened this issue Mar 27, 2019 · 27 comments
Closed
Labels
good first issue Good for newcomers tip

Comments

@hebertlima
Copy link
Contributor

hebertlima commented Mar 27, 2019

E ae galera!
Estou vendo que alguns devs aqui estão com problemas para rodar o projeto, talvez por que alguns não estão acompanhando a serie no YouTube e por pegarem o "bonde andando" estão pulando algumas etapas do projeto e indo direto para o node index.js, então aqui vai a transcrição do passo-a-passo (que está sendo explicado nos vídeos) detalhado de como rodar o projeto para os desavisados de primeira viagem 😜

Start

Vou partir do princípio que você caiu na playlist e é aspirantes a programação e não está familiarizados com o Git ou Node.js, então primeiro você precisa instalar o Node.js no seu pc e seguir o procedimento padrão de instalação next->next->ok, recomendo você baixar o Git e instalar na sua maquina, depois basta copiar a URL do projeto conforme abaixo:

Start

Clonando o Repositório

Com o Git e o Node.js instalado na sua maquina e a URL do projeto em mãos, cria em algum lugar do seu pc uma pasta para criarmos uma copia do repositório, dentro dela abra o cmd ou powershell e digite os comandos abaixo:

git clone https://github.com/filipedeschamps/video-maker.git
cd video-maker
npm install

Clone

Api: Algorithmia

É necessário criar a sua chave de acesso para poder testar os robôs, pra isso você precisa acessar o site do Algorithmia, aqui não tem muito segredo, basta acessar e se cadastrar, depois de logar na sua conta, na Dashboard procure no menu Api Keys e copie.

Algorithmin

vá até a pasta do projeto onde você clonou o repositório, navegue até a pasta video-maker\credentials, crie um arquivo de texto e renomeie para algorithmia.json, dentro desse arquivo você irá colocar a API que copiou do site Algorithmia na estrutura abaixo:

{
  "apiKey": "API_KEY_AQUI"
}

Api: Watson

Você precisa criar também as credenciais do Watson no site da IBM, também não tem segredo, basta se cadastrar, quando estiver logado no menu superior clique em Catálogo, depois dentro de IA procure por Natural Language Understanding

IBM

clicando nele na nova página vai aparece um botão "criar" no final da página, uma vez que o serviço for criado, você será redirecionado para a página de gerenciamento do serviço que você acabou de criar, no menu lateral esquerdo procure por Credenciais de Serviços e depois clique em Auto-generated service credentials destacado abaixo, então copie as Credenciais:

IBM

Novamente, voltando na pasta do projeto ainda dentro da pasta video-maker\credentials você ira criar um novo arquivo de texto com o nome watson-nlu.json e dentro desse arquivo você vai colar as credenciais que copiou anteriormente:

{
  "apikey" : "...",
  "iam_apikey_description" : "...",
  "iam_apikey_name": "...",
  "iam_role_crn": "...",
  "iam_serviceid_crn": "...",
  "url": "..."
}

Setup: Google Cloud Plataform

Antes de criarmos as api's que iremos utilizar é necessário vincular a nossa conta do Google com o Google Cloud Plataform, na página do Google Cloud Plataform você irá clicar no botão Faça uma Avaliação Gratuita:

google-cloud

em seguida marque a opção Termos e Condições

google-cloud-step1

Ps.: É importante lembrar que alguns recursos do Google Cloud Plataform são Pagos, por esse motivo é necessário inserir as informações de pagamento, mas fique tranquilo porque iremos utilizar apenas os recursos Gratuitos

google-cloud-pay

Criando o Projeto

Agora é a hora de criarmos um projeto que iremos vincular as Api's que vamos utilizar, para isso basta clicar no menu do topo da página "Selecionar projeto" e depois em "Novo Projeto":

image

de um nome ao projeto e clique no botão criar:

image

após isso o projeto começará a ser criado e assim que terminar um menu vai aparecer com o projeto que acabamos de criar então você irá seleciona-lo:

image

Api: Custom Search API

Com o projeto criado agora é hora de habilitarmos e configurarmos a Api, você irá clicar no menu lateral esquerdo no topo navegar até API's e Serviços > Bibliotecas:

image

no campo de pesquisa basta procurar por Custom Search API, clicar em Ativar, e aguardar até a ativação da api:

image

Após a ativação vai aparecer uma mensagem solicitando a criação das credenciais da API, então basta você clicar em Criar Credenciais:

image

Procure por Custom Search API no dropdown e clique em "Preciso de quais credenciais?"

image

Após isso irá aparecer sua Api Key, você vai copia-la e clicar no botão concluir, voltando a pasta do projeto você vai navegar até video-maker/credentials e irá criar um novo arquivo chamado google-search.json com o conteúdo abaixo:

{
  "apiKey": "API_KEY_AQUI"
}

Api: Custom Search Enginer

Agora iremos configurar o nosso motor de busca personalizado do google, para isso você vai acessar o Custom Search Engine, e irá informar o site a pesquisar coloque google.com, ire selecionar o idioma que preferir no vídeo o Filipe deixa Inglês então aconselho deixar em inglês, e por fim clique em Opções avançadas e para o esquema iremos utilizar o mais genérico Thing, pronto tudo preenchido você irá clicar em criar:

PS.: Para saber mais sobre o schema que o Filipe cita no vídeo acesse schema.org

image

Agora basta clicar em Painel de Controle na nova tela nós iremos habilitar a opção Pesquisa de imagens e depois iremos clicar no botão Copiar para área de transferência"

image

Ps.: Existem diversas opções que eu aconselho futuramente você testar e descobrir o que cada uma dela faz 😋

image

Voltando no arquivo google-search.json iremos criar uma nova propriedade e iremos colar o código identificador do mecanismo de busca que criamos, identificado por searchEngineId, no final irá ficar assim:

{
  "apiKey": "API_KEY_AQUI"
  "searchEngineId": "ID_MECANISMO_DE_BUSCA"
}

Api: YouTube

Chegou a hora de configurarmos a api do youtube!, como fizemos na api custom search iremos fazer o mesmo com a api do YoutTube, então basta acessar o Google Cloud e habilitar o serviço do YouTube, clicando no menu Lateral Apis e Serviços -> Biblioteca, na caixa de pesquisa procure por YouTube, e click no botão Ativar:

ezgif-5-fa13fd3c8407

Ps. No vídeo o Filipe orienta a criar um novo projeto para adicionar a api do Youtube, porem aqui, estou usando o mesmo projeto que criei para o video-maker, mas caso queria criar um novo projeto basta seguir os passos de Criando o Projeto que está no começo desse guia!

Agora clique na guia Tela de consentimento OAuth
image

Em seguida preencha apenas o campo "nome do aplicativo", futuramente você pode voltar aqui para personalizar com as outras informações caso desejar:

image

Clique no dropdown Criar credenciais e escolha ID do Cliente OAuth:
image

Aqui não tem muito segredo, escolha Aplicativo da Web para o Tipo de Aplicativo, escolha um nome do aplicativo, no primeiro campo insira o endereço http://localhost:5000 e no segundo http://localhost:5000/oauth2callback e clique no botão criar:

image

Após ser criada, irá aparecer uma janela com as credenciais, você pode dar ok, pois iremos baixar as credencias como na tela abaixo:

image

renomeio o arquivo para youtube.json e salve dentro da pasta video-maker/credentials 😄

1.., 2..., 3... Testando!

Agora dentro da pasta video-maker você pode abrir o cmd ou powershell e executar o comando:

node index.js

ezgif-5-924644a4b21d

Dica Extra Para quem estiver usando o Adobe After Effects, eu não consegui encontrar a extenção apartir do cloud creative, mas encontrei no proprio site da Adobe aqui 😃

@filipedeschamps
Copy link
Owner

Nossa @hebertlima matou a pau!!!! Sério, fico emocionado quando vejo essas coisas! Muito obrigado :) o vídeo sobre as credenciais da API oficial do Google sai nessa segunda 👍

@azludium
Copy link

Agora ficou lindo Hebert, grato pela carinho e pela dedicação, até um ignóbil em programação com eu consegue

@hebertlima
Copy link
Contributor Author

@filipedeschamps que isso cara é o minimo! quero contribuir com o que eu puder, esse projeto vai ficar massa demais 😆! @azludium conforme for saindo as video aulas irei atualizando pra deixar o mais facil possível assim todo mundo pode testar mesmo sem saber muito sobre programação 😜

@Kelvao
Copy link

Kelvao commented Mar 28, 2019

Acho válido colocar isso no readme do projeto, com algumas sessões sobre as funcionalidades e link para os videos.

@hebertlima
Copy link
Contributor Author

@Kelvao boa, vou adicionar essas seções sobre as funcionalidades 😆

@danielschmitz danielschmitz added good first issue Good for newcomers tip labels Apr 1, 2019
@danielschmitz danielschmitz changed the title [Dica] Transcrição para rodar o Projeto Passo a Passo para executar o projeto pela primeira vez Apr 1, 2019
@danielschmitz
Copy link
Collaborator

@hebertlima Alterei o título para ficar mais claro, oK? Parabéns pelo tópico

@hebertlima hebertlima changed the title Passo a Passo para executar o projeto pela primeira vez [Atualizado 23/04] Passo a Passo para executar o projeto pela primeira vez Apr 4, 2019
@rafabp82
Copy link

Fiz exatamente o que o passo-a-passo diz, deu tudo certo até a hora que fui rodar, rs. Deu o seguinte erro:
internal/modules/cjs/loader.js:723
throw err;
^

SyntaxError: C:\Users\Rafael\Downloads\video-maker\video-maker\credentials\google-search.json: Unexpected string in JSON at position 60
at JSON.parse ()
at Object.Module._extensions..json (internal/modules/cjs/loader.js:720:27)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object. (C:\Users\Rafael\Downloads\video-maker\video-maker\robots\image.js:6:33)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)

Alguém sabe o que é isso?

@diegomagikal
Copy link

@rafabp82 o seu arquivo google-search.jsonestá com um erro de sintaxe... verifique linha por linha, deve ter esquecido de alguma vírgula, aspas ou algo assim!

@DharanaVentura
Copy link

Fiz exatamente o que o passo-a-passo diz, deu tudo certo até a hora que fui rodar, rs. Deu o seguinte erro:
internal/modules/cjs/loader.js:723
throw err;
^

SyntaxError: C:\Users\Rafael\Downloads\video-maker\video-maker\credentials\google-search.json: Unexpected string in JSON at position 60
at JSON.parse ()
at Object.Module._extensions..json (internal/modules/cjs/loader.js:720:27)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object. (C:\Users\Rafael\Downloads\video-maker\video-maker\robots\image.js:6:33)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)

Alguém sabe o que é isso?

Conseguiu resolver? O meu erro é idêntico ao seu, Estou até agora tentando achar erro de sintaxe, já fiz o pap do #125 várias vezes... rsrsrs

@diegomagikal
Copy link

@DharanaVentura poste seu google-search.json aí...

@DharanaVentura
Copy link

@DharanaVentura poste seu google-search.json aí...

{
"apiKey": "AIzaSyBKX70U47sJuGNbKBtA5PvsXbtboI"
"searchEngineId": "016916573647549:1mzefrn4"
}

Não estou expondo a chave original.

Thankyou.

internal/modules/cjs/loader.js:723
throw err;
^

SyntaxError: C:\Users\dhara\node\geratube\credentials\google-search.json: Unexpected string in JSON at position 56
at JSON.parse ()
at Object.Module._extensions..json (internal/modules/cjs/loader.js:720:27)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object. (C:\Users\dhara\node\geratube\robots\image.js:6:33)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)

@diegomagikal
Copy link

@DharanaVentura está faltando uma vírgula depois do valor de apiKey:

"apiKey": "AIzaSyBKX70U47sJuGNbKBtA5PvsXbtboI",

@DharanaVentura
Copy link

Obrigada, e desculpe a falta de atenção.

@rafabp82
Copy link

@DharanaVentura está faltando uma vírgula depois do valor de apiKey:

"apiKey": "AIzaSyBKX70U47sJuGNbKBtA5PvsXbtboI",

Obrigado pela dica, agora rodou, porém dá outro erro após ele baixar as imagens:

(node:7900) UnhandledPromiseRejectionWarning: Error: Command failed: Par�metro Inv�lido - /content

at ChildProcess.onExit (C:\Users\Rafael\Downloads\video-maker\video-maker\node_modules\gm\lib\command.js:301:17)
at ChildProcess.emit (events.js:189:13)
at ChildProcess.cp.emit (C:\Users\Rafael\Downloads\video-maker\video-maker\node_modules\cross-spawn\lib\enoent.js:40:29)
at maybeClose (internal/child_process.js:970:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)

(node:7900) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:7900) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

@doug-simon
Copy link

@DharanaVentura está faltando uma vírgula depois do valor de apiKey:
"apiKey": "AIzaSyBKX70U47sJuGNbKBtA5PvsXbtboI",

Obrigado pela dica, agora rodou, porém dá outro erro após ele baixar as imagens:

(node:7900) UnhandledPromiseRejectionWarning: Error: Command failed: Par�metro Inv�lido - /content

at ChildProcess.onExit (C:\Users\Rafael\Downloads\video-maker\video-maker\node_modules\gm\lib\command.js:301:17)
at ChildProcess.emit (events.js:189:13)
at ChildProcess.cp.emit (C:\Users\Rafael\Downloads\video-maker\video-maker\node_modules\cross-spawn\lib\enoent.js:40:29)
at maybeClose (internal/child_process.js:970:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)

(node:7900) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:7900) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Eu estava com o mesmo erro e achei a solução aqui: #110 (comment)

@hebertlima hebertlima changed the title [Atualizado 23/04] Passo a Passo para executar o projeto pela primeira vez [Atualizado 01/05] Passo a Passo para executar o projeto pela primeira vez May 1, 2019
@hebertlima
Copy link
Contributor Author

hebertlima commented May 3, 2019

Galera adicionei o tutorial sobre como criar as credenciais do youtube, vocês acham necessário criar uma explicação sobre o affter effects também? eu particulamente tive uns probleminhas pra ele rodar assim como um macete do imahemagick no windows 10, aqui dava parametro inválido

@Beaast-exe
Copy link

@hebertlima #155 eu segui tudo e nao funciona ...

@onibusmoc
Copy link

erro algume me ajuda??
video-maker\credentials\google-search.json: Unexpected string in JSON at position 60

@hebertlima
Copy link
Contributor Author

@hebertlima #155 eu segui tudo e nao funciona ...

desculpa demora @Beaast-exe, eu abri uma pr no seu repo corrigindo o problema de autenticação, no caso vc apenas colocou a url errada 😄 da uma olhada aqui

@onibusmoc
Copy link

Preciso muito da ajuda de voces, alguem sabe consegue resolver?

C:\Users\serje\Desktop\Nova pasta\video-maker>node index.js
internal/modules/cjs/loader.js:723
throw err;
^

SyntaxError: C:\Users\user\Desktop\Nova pasta\video-maker\credentials\google-search.json: Unexpected string in JSON at position 60
at JSON.parse ()
at Object.Module._extensions..json (internal/modules/cjs/loader.js:720:27)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object. (C:\Users\serje\Desktop\Nova pasta\video-maker\robots\image.js:5:33)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)

@hebertlima
Copy link
Contributor Author

hebertlima commented May 11, 2019

Preciso muito da ajuda de voces, alguem sabe consegue resolver?

C:\Users\serje\Desktop\Nova pasta\video-maker>node index.js
internal/modules/cjs/loader.js:723
throw err;
^

SyntaxError: C:\Users\user\Desktop\Nova pasta\video-maker\credentials\google-search.json: Unexpected string in JSON at position 60
at JSON.parse ()
at Object.Module._extensions..json (internal/modules/cjs/loader.js:720:27)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object. (C:\Users\serje\Desktop\Nova pasta\video-maker\robots\image.js:5:33)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)

tem algo escrito errado dentro do google-search.json talvez vc esqueceu uma virgulra (,) em algum lugar

@onibusmoc
Copy link

Me ajuda ai galera, como resolver esse Erro?

[video-robot] Sentence created: ./content/5-sentence.png
[video-robot] Sentence created: ./content/6-sentence.png
[video-robot] YouTube thumbnail created
[video-robot] Starting After Effects
events.js:174
throw er; // Unhandled 'error' event
^

Error: spawn Program FilesAdobeAdobe After Effects CC 2019aerender ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
at onErrorNT (internal/child_process.js:415:16)
at process._tickCallback (internal/process/next_tick.js:63:19)
Emitted 'error' event at:
at Process.ChildProcess._handle.onexit (internal/child_process.js:246:12)
at onErrorNT (internal/child_process.js:415:16)
at process._tickCallback (internal/process/next_tick.js:63:19)

@hebertlima
Copy link
Contributor Author

@onibusoc você precisa corrigir o o caminho que o robo video.js esta chamando o aerender.exe

@onibusmoc
Copy link

Agora esse erro

PROGRESS: 0:01:14:29 (2250): 1 segundos
PROGRESS: 13/05/2019 18:40:33: composi��o conclu�da �main�.
PROGRESS: Tempo total decorrido: 13 min, 8 s
LoadLibrary "n" failed!
LoadLibrary "n" failed!

[video-robot] After Effects closed
[youtube-robot] Starting...
[youtube-robot] Listening on http://localhost:5000
(node:15568) UnhandledPromiseRejectionWarning: Error: Cannot find module '../credentials/google-youtube.json'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
at Function.Module._load (internal/modules/cjs/loader.js:508:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at createOAuthClient (C:\Users\serje\Desktop\X\video-maker\robots\youtube.js:42:27)
at authenticateWithOAuth (C:\Users\serje\Desktop\X\video-maker\robots\youtube.js:18:31)
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:15568) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:15568) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

@rafaeljustinox
Copy link

credentials/google-youtube.json

Verifique se você tem exatamente esse arquivo "credentials/google-youtube.json"

@8uch3ch4
Copy link

Bom dia, Galeraaa
Estou com esse erro,

PS C:\Users\Usuario\video-maker-master> node index.js
internal/modules/cjs/loader.js:584
throw err;
^

Error: Cannot find module '../credentials/algorithmia.json'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
at Function.Module._load (internal/modules/cjs/loader.js:508:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object. (C:\Users\Usuario\video-maker-master\robots\text.js:2:27)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
PS C:\Users\Usuario\video-maker-master>

sou um novato em programação, já olhei tudo esse post, e não estou entendendo muito

@WSantos79
Copy link

Na parte de criar a credencial da Custom Search API está diferente, nao consigo fazer igual ao tutorial, alguém pode ajudar?
custom search

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers tip
Projects
None yet
Development

No branches or pull requests