https://github.com/gustavonav/youtubeextractorflask
Aplicação para Extração e tratamento de dados do Youtube.
https://github.com/gustavonav/youtubeextractorflask
data full-stack mysql pipelines python web
Last synced: about 1 year ago
JSON representation
Aplicação para Extração e tratamento de dados do Youtube.
- Host: GitHub
- URL: https://github.com/gustavonav/youtubeextractorflask
- Owner: GustavoNav
- Created: 2024-07-17T20:21:44.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-19T04:40:48.000Z (almost 2 years ago)
- Last Synced: 2025-01-24T07:09:46.796Z (over 1 year ago)
- Topics: data, full-stack, mysql, pipelines, python, web
- Language: Python
- Homepage:
- Size: 17.7 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# YoutubeExtractorFlask
## Descrição
YoutubeExtractorFlask é um projeto pessoal desenvolvido para praticar conceitos de Engenharia de Dados, Análise de Dados e Ciência de Dados. Este projeto permite a extração de dados do YouTube, oferecendo atualmente duas funcionalidades:
- Extração de dados atuais de um canal.
- Extração de vídeos em alta (trending), incluindo os dados de todos os vídeos nos trending topics e seus respectivos canais.
A aplicação exibe para o usuário todos os canais e vídeos extraídos, juntamente com suas informações detalhadas. Além disso, são apresentadas métricas e gráficos dos dados coletados, utilizando as bibliotecas Dash e Plotly.
A aplicação foi desenvolvida com Flask, um framework web em Python. O backend foi implementado inteiramente em Python, enquanto o frontend utiliza recursos do Flask, CSS e JavaScript.
A arquitetura do projeto e ideia foram inspirados no conjunto de aulas de ETL Pipeline do [Programador Lhama](https://www.youtube.com/watch?v=D5mwXMMA0e0&list=PLAgbpJQADBGLuI1oR39tVfELOEZJSSbxQ).
## Requisitos
É necessário Python 3.10 e Docker version 24.0.7 (Pode não funcioanar em outras versões)
Primeiro clone o repositório, crie o ambiente virtual, ative o ambiente e instale o projeto e seus requerimentos.
### Windows
```
git clone https://github.com/GustavoNav/YoutubeExtractorFlask
python3 -m venv nome_do_ambiente
nome_do_ambiente\Scripts\activate
pip install -r requirements.txt
```
### Mac/Linux
```
git clone https://github.com/GustavoNav/YoutubeExtractorFlask
python3 -m venv nome_do_ambiente
source nome_do_ambiente/bin/activate
pip install -r requirements.txt
```
### Banco de Dados
O banco de dados utilizados é Mysql, para esse caso utilizei Docker, detalhes da conexão no arquivo *database_connector*.
Criar imagem do my_sql, as tabelas são criadas automaticamente, utilizando o arquivo db.sql:
```
docker build -t my_mysql_image ./database
```
Inicie o container na porta 3306
```
docker run --name my_mysql_container -d -p 3306:3306 my_mysql_image
```
Para não perder os dados ao encerrar o container, crie um volume, veja mais a respeito na documentação [Docker](https://docs.docker.com/engine/storage/volumes/).
### Iniciar o Projeto
Uma vez que as dependências tenham sido instaladas e banco de dados configurado. Configure o Pythonpath para o seu diretório corrente.
Execute o comando pwd para ver o caminho absoluto para o diretório corrente:
```
pwd
```
Copie o caminho absoluto e então execute:
```
export PYTHONPATH=/caminho_absoluto
```
Agora basta executar:
```
flask run
```
Acesse o endereço mostrado no Terminal e aproveite!
## Links Úteis
[Python](https://www.python.org/)
[Flask](https://flask.palletsprojects.com/en/3.0.x/)
[Requests](https://docs.python-requests.org/en/latest/index.html)
[BeatifulSoup](https://beautiful-soup-4.readthedocs.io/en/latest/)
[Dash](https://dash.plotly.com/)
[Plotly](https://plotly.com/python/)
[Youtube](https://www.youtube.com)