Tocar mp3 com a biblioteca pygame

A biblioteca pygame é muito versátil na sua utilização, mas uma implementação simples é utilizá-la para tocar arquivos no formato mp3.

A implementação é muito simples e com poucas linhas, você pode utilizá-la para curtir um som ou inserir um arquivo de audio no seu sistema ou game.

Vamos ao código!


Uma forma de implementar o código.

# importar a biblioteca pygame
from pygame import mixer

# uma forma de implementar o código
mixer.init()

# substitua o nome do arquivo "musica.mp3" pelo seu arquivo mp3
mixer.music.load('musica.mp3')
mixer.music.play()
x = input('Digite algo para parar...')

Outra forma de implementar o código.

# importar a biblioteca pygame
import pygame

# outra forma de implementar o código

pygame.mixer.init()
# substitua o nome do arquivo "musica.mp3" pelo seu arquivo mp3
pygame.mixer.music.load('musica.mp3')
pygame.mixer.music.play()
x = input('Digite algo para parar a musica...')

As duas formas funcionam, porém fica a critério de cada um como implementar.

obs: código postado no grupo de Telegram da comunidade Py013.

Até a próxima!

Buscar CEPs com Python e Selenium

Um dos trabalhos apresentados no Encontro da Comunidade no dia 27/05/23 por Altair Ribeiro

Muitas vezes precisamos obter endereços completos para a realização de testes de software, ou ainda para incluir dados em um formulário na Web.
O Selenium é uma biblioteca muito utilizada para testes de software e que pode ser utilizada a realização desse tipo de trabalho repetitivo.

Você precisa ter o geckodriver.exe (baixe aqui) ou o chromedriver.exe (baixe aqui) para que o código fonte em Python em conjunto com a biblioteca Selenium crie uma instância do Browser e controle todo o processo de execução.

Tanto o Geckodriver.exe quanto o Chromedriver.exe precisam estar na mesma pasta do código fonte.

Utilizamos um site muito utilizado por Analistas de Qualidade para a geração de massa de dados.

É um site muito conhecido nesse meio e também muito bem montado e que contribui muito para elevarmos o nível da disciplina de qualidade no Brazil.

É o site www.4devs.com.br!

Vamos ao código fonte.

# importar as bibliotecas necessárias
import os
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import random
import re

# Definir a quantidade de endereços que serão gravados no arquivo "ceps.txt"
qtde= 5

# Inclusão de um Try para obter o código de erro em caso de falha do código fonte e o código que será executado
try:
    path_atual = os.getcwd()
    print('path:' , path_atual)

    # driver = webdriver.Chrome()
    driver = webdriver.Firefox()
    driver.maximize_window()

    # URL que será acessada
    url = 'https://www.4devs.com.br/gerador_de_cep'

    driver.get(url)
    time.sleep(2)

    cont = 0

    estado = driver.find_element(By.ID, 'cep_estado')
    estado.send_keys('SP')
    time.sleep(5)

    estado = driver.find_element(By.ID, 'cep_cidade')
    estado.send_keys('Santos')
    time.sleep(5)

    with open("ceps.txt",'a', newline="") as arquivo:
        while cont <qtde:

            submit = driver.find_element(By.ID,'btn_gerar_cep')
            #time.sleep(3)
            submit.click()
            time.sleep(5)
            cep = driver.find_element(By.ID, 'cep')
            cep.click()
            endereco = driver.find_element(By.ID, 'endereco')
            endereco.click()
            bairro = driver.find_element(By.ID, 'bairro')
            bairro.click()
            cidade = driver.find_element(By.ID, 'cidade')
            cidade.click()
            estado = driver.find_element(By.ID, 'estado')
            estado.click()
            time.sleep(5)
            arquivo.write(re.sub("\-","",cep.text) + ';' + endereco.text + ';' + str(random.randint(1,1000)) + ';' + 'ap. ' + str(random.randint(1,100)) + ';' + bairro.text + ';' + cidade.text + ';' +estado.text + '\n')
            cont += 1
            #print(cont , ". ", cep.text + ';' + endereco.text + ';' + str(random.randint(1,1000)) + ';' +  'ap. ' + str(random.randint(1,100)) + ';' + bairro.text + ';' + cidade.text + ';' +estado.text)
            print(cont , ". ", re.sub("\-","",cep.text) + ';' + endereco.text + ';' + str(random.randint(1,1000)) + ';' +  'ap. ' + str(random.randint(1,100)) + ';' + bairro.text + ';' + cidade.text + ';' +estado.text)

    arquivo.close()
    driver.close()

# Tratamentos dos erros para uma melhor identificação em caso de falha
except OSError as err:
    #<aqui vai o erro de Sistema Operacional>
    print("Erro de S.O. : {0}".format(err))
except ValueError:
    # <aqui vai o erro do programa>
    print("Não pode converter data para inteiro.")
except BaseException as err:
    #<aqui vão exceções que aconteçam no programa>
    print(f"Inesperado {err=}, {type(err)=}")
    raise

Se tiver dúvidas no uso do código, entre na comunidade no Telegram (https://t.me/+aLIZYCmBJfH-qPGs).

Até a próxima!

Baixar a playlist inteira do Youtube

Algumas vezes queremos estudar offline e para isso precisamos baixar os videos localmente no computador.

Existem ferramentas que fazem isso, mas geralmente são pagas.

Com poucas linhas de código fonte, você pode fazer isso com Python.

Porém, respeitem os direitos autorais dos autores dos vídeos, músicas ou qualquer forma de conteúdo produzido.

Vamos lá!

# carregar os métodos Youtube e Playlist da biblioteca pytube
from pytube import YouTube, Playlist

# atribui à variável playlist_fim a URL da playlist obtida no Youtube
playlist_fim = 'https://www.youtube.com/watch?v=IftUFXo2e-k&list=PLnNURxKyyLIKvXocwRwLCQqPU0mcTSLxJ'

# atribuir à variável playlist a lista de vídeos da playlist com o método Playlist
playlist = Playlist(playlist_fim)

# para cada item da lista de vídeos da playlist, baixar cada
# vídeo sequencialmente (laço for utilizado)
for url in playlist:
    # atribuir à variável video o método Youtube com o parãmetro url que irá
    # ler o vídeo sequencialmente, iniciando do primeiro da playlist
    video = YouTube(url)
    # atribuir à variável stream a utilização do vídeo de mais alta resolução
    stream = video.streams.get_highest_resolution()
    # efetuar o download do vídeo e gravar na pasta "playlist"
    stream.download(output_path='playlist')

A variável PLAYLIST_URL terá a atribuição da URL que foi obtida do Youtube.

O código fonte está comentado para facilitar o entendimento.

Até mais!

Baixar audio de um video no Youtube

Muitas vezes queremos baixar somente o som de um vídeo no Youtube, mas os sites que existem para isso contém muitas armadilhas que podem instalar malwares no seu computador, enquanto realizam o download para você.

Por isso, algumas vezes é melhor você mesmo fazer o download com poucas linhas de código em Python.

Somente fique atento aos direitos autorais de músicas, filmes e artistas em geral, porque existem leis que protegem os direitos autorais do autor da obra e utilizar a obra sem autorização é crime.

Esse snippet é somente ilustrativo para você exercitar a sua programação e conhecer mais uma biblioteca neste vasto mundo do Python.

A biblioteca que utilizaremos é a pytube.

A Pytube é um biblioteca que se define como “leve e livre de dependências para baixar vídeos do Youtube”.

Simples assim!

Vamos ao snippet!

from pytube import YouTube

VIDEO_URL = 'https://www.youtube.com/watch?v=FBLAV1SbJFk&t=2s'
yt = YouTube(VIDEO_URL)

audio = yt.streams.filter(only_audio=True)[0]
audio.download()

Na variável VIDEO_URL você incluirá a URL do vídeo do Youtube que será realizado o download.

Não esqueça de instalar antes a biblioteca com o comando abaixo na linha de comando (cmd):

c:> pip install pytube

Nesse exemplo, utilizamos o vídeo do canal Dev Aprender do Jhonatan de Souza, que possui vídeos excelentes sobre Python e sua utilização.

Conheça mais sobre a biblioteca pytube e explore novas opções de download!

Até mais!