Executando verificação de segurança...
1

Compartilhe seus videos do Youtube automáticamente no seu perfil do Github

Obs: Você não precisa ser um youtuber para continuar lendo este artigo, o aprendizado é geral :) (nem eu sou também)

Querendo compartilhar seus últimos vídeos no YouTube? Essa pode ser sua melhor oportunidade de fazer isso em seu perfil no Github e ainda te garante um aprendizado ou ao menos a primeira experiência com ferramentas que podem te dar muitas ideias.

Há algumas ferramentas que considero que todos desenvolvedores deveriam conhecer, não por que acho que devam pensar como eu penso ou usar as ferramentas que uso, mas por saber que durante o processo de criação de minhas ideias, muitas vezes precisei dessas ferramentas mas por não conhecer-las antes não dei seguimento. Com certeza se eu tivesse conhecido a mais tempo teria solucionado muitos problemas ou no mínimo ter sido mais produtivo.

Dessas ferramentes neste artigo irei citar duas:

Em um momento de abstinência de código (férias do trabalho), decidi criar uma action para automátizar o compartilhamento de videos do youtube nos perfis do github (ou em qualquer README). E o pontos chave dessa implementação é justamente o uso de Actions para automatizar o processo.

Quando pensamos em Github Actions ou em outros serviços de automatização de CI/CD geralmente temos uma imagem de algum processo de deploy ou de testes unitários e etc. Mas por que não usar essa poderosa ferramente para facilitar nossa vida de outras formas? Saber as funcionalidades dessa ferramente pode te dar ideias incríveis, abrir horizontes que você não imaginaria enxergar sem conhecer esse poder antes.

Então vamos para o que interessa! Como faço para usar essa action em meu perfil e ver a mágica acontecendo?

Vamos criar um cenário que eu queira colocar em meu perfil os últimos 3 videos do Filipe Deschamps, que o id do canal é: UUU5JicSrEM5A63jkJ2QvGYw, e como eu sei que ele publica vídeos toda segunda-feira às 11h eu quero que minha automação rode sempre as segunda-feiras às 11:05.

E aqui vem umas das mágicas mais incríveis do github actions, cron jobs! Já imaginou ter uma pipeline rodando periodicamente num horário exato que você definiu? Não vou me aprofudar em como funciona o cron, mas definitivamente valhe a pena você ir atrás de entender isso. Bom vamos lá, aqui vai uma configuração de schedule que queriamos:

on:
  schedule:
    - cron: '5 11 * * 1' # runs every monday at 11:05am

e agora vem a parte prática vamos chamar a action pra buscar nossos videos, e bem simples criamos um job que faz o seguinte:

jobs:
   update_readme:
      runs-on: ubuntu-latest
      steps:
         - uses: actions/checkout@v2
         - name: Get Youtube Videos
           uses: pmqueiroz/readme-last-youtube-videos@main
           env:
              YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }}
           with:
              channel_id: "UUU5JicSrEM5A63jkJ2QvGYw"
         - name: Push changes
           uses: actions-js/push@master
           with:
              github_token: ${{ secrets.GITHUB_TOKEN }}

Você pode encontrar a documentação completa de como usar essa action aqui

E agora 😮 está funcionando?!? Não, ainda não dizemos pra action onde inserir esses vídeos, como posso estilizar? E aqui entra a segunda ferramenta incrível que todo desenvolvedor ou ao menos todo dev JS/TS deveria conhecer: Handlebars

Essa action pega um template feito em cima da syntax do handlebars e renderiza inserindo uma chave videos contendo um arrays dos videos que você buscou, vamos fazer um template legal pros vídeos do Michel Teló Deschamps:

### Que tal conferir os últimos vídeos do Felipe Deschamps?:

{{#each videos}}

<a href="https://youtu.be/{{videoId}}">
   <img width="30%" src="{{thumbnail}}" alt="{{title}}"></img>
</a>

{{/each}}

E voilá agora temos tudo pra ter funcionando 😎 São implementações simples e pequenas mas espero que tenha servido pra te intisgar a estudar sobre essas ferramentes, elas podem te dar um avanço grande!

Fiz um repo pra se você quiser conferir o resultado do que fizemos aqui

Carregando publicação patrocinada...