Skip to content

Commit 51e6f2c

Browse files
committed
chore: Update file permissions and remove unused script 'determinado.py'
1 parent f01dbb7 commit 51e6f2c

42 files changed

Lines changed: 367 additions & 87 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

100644100755
File mode changed.

.gitignore

100644100755
File mode changed.

CITATION.cff

100644100755
File mode changed.

README.md

100644100755
Lines changed: 104 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,117 @@
1-
## Digital Humanities Youtube Research Database (PhD Research Proposal)
1+
## Digital Humanities YouTube Research Database (PhD Research Proposal)
22

33
[![DOI](https://zenodo.org/badge/929105417.svg)](https://doi.org/10.5281/zenodo.15258448)
44

5-
> Projeto de pesquisa financiado pelo [Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)](https://cnpq.br), Brasil
5+
Projeto de pesquisa desenvolvido como parte da minha tese de doutorado sendo realizada no [Programa de Pós-Graduação em Ciência Política](https://www.ifch.unicamp.br/pos/ciencia-politica) da Universidade Estadual de Campinas (Unicamp). O projeto é
6+
financiado pelo [Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)](https://cnpq.br), Brasil.
67

7-
## Base de dados
8+
## Visão geral
89

9-
Essa base de dados irá contar com as seguintes ferramentas para análise
10+
Este repositório reúne scripts e dados para coleta, atualização e análise de conteúdo de canais do YouTube no contexto de pesquisa em Humanidades Digitais.
1011

11-
### **Python e Whisper (OpenAI)**
12-
- Transcrição dos vídeos (Python e Whisper/OpenAI)
13-
- Web scrapping (Python) e Google API V3 YouTube
14-
- [Whisper](https://openai.com/index/whisper/) - [GitHub](https://github.com/openai/whisper)
15-
### **YouTube data tools e Google API**
16-
>Para cada vídeo:
17-
- Autores (Canais)
18-
- URLs
19-
- Data do vídeo
12+
Principais objetivos:
13+
14+
- Coletar metadados de vídeos e comentários.
15+
- Atualizar periodicamente os dados dos canais monitorados.
16+
- Armazenar os resultados em base relacional (SQLite).
17+
- Apoiar análises exploratórias e de NLP (incluindo transcrição de áudio).
18+
19+
## Tecnologias e ferramentas
20+
21+
### Python + Whisper (OpenAI)
22+
23+
- Download das transcrições com `YouTube Transcript API` + Whisper/OpenAI + `yt-dlp`. Usa-se Whisper quando não há transcrição automática disponível ou para comparar resultados.
24+
- Coleta (scraping/API) com Python e YouTube Data API v3.
25+
26+
### Referências
27+
28+
- [Whisper](https://openai.com/index/whisper/)
29+
- [GitHub Whisper](https://github.com/openai/whisper)
30+
- [WhisperCPP](https://github.com/ggerganov/whisper.cpp)
31+
- [EasyWhisperUi](https://github.com/mehtabmahir/easy-whisper-ui)
32+
- [YouTube Data API v3](https://developers.google.com/youtube/v3)
33+
- [YouTube Transcript API](https://github.com/jdepoix/youtube-transcript-api)
34+
- [yt-dlp](https://github.com/yt-dlp/yt-dlp)
35+
- [Google API Python Client](https://github.com/googleapis/google-api-python-client)
36+
- [SQLite3](https://www.sqlite.org/index.html)
37+
38+
### YouTube Data Tools + Google API
39+
40+
Para cada vídeo, o projeto busca armazenar:
41+
42+
- Autor/canal
43+
- URL
44+
- Data de publicação
2045
- Número de visualizações
2146
- Número de likes
22-
- Número de comentários
23-
- Conteúdo dos comentários
24-
- Número de likes dos comentários
47+
- Número de comentários
48+
- Conteúdo dos comentários
49+
- Likes dos comentários
50+
51+
## Estrutura do projeto (resumo)
52+
53+
- `api/` — cliente e integrações de API.
54+
- `audio/` — rotinas de áudio/transcrição.
55+
- `data/` — arquivos CSV e saídas processadas.
56+
- `db/` — base SQLite local.
57+
- `pipeline/` — análises e visualizações.
58+
- `services/`, `models/`, `database/` — camadas auxiliares de dados e domínio.
59+
60+
## Configuração
61+
62+
### 1) Clonar e instalar dependências
63+
64+
```bash
65+
git clone https://github.com/geraldohomero/dh-youtube-database.git
66+
cd dh-youtube-database
67+
python -m venv .venv
68+
source .venv/bin/activate # Linux/macOS
69+
pip install -r requirements.txt
70+
```
71+
72+
### 2) Configurar variáveis de ambiente
73+
74+
Crie/edite o arquivo `.env` com os campos abaixo:
75+
76+
```env
77+
YOUTUBE_API_KEYS=<API_KEYS...>
78+
CHANNEL_IDS=<CHANNEL_ID...>
79+
DB_CONFIG=<DB_PATH>
80+
WEBSHARE_PROXY_USERNAME=<USERNAME>
81+
WEBSHARE_PROXY_PASSWORD=<PASSWORD>
82+
```
83+
84+
## Como executar
85+
86+
Fluxo mínimo sugerido:
2587

26-
### Arquivo `.env`:
88+
1. **Atualização anual/geral de canais**
89+
- Script: `canaisAtualizacaoAnual.py`
2790

28-
```python
29-
YOUTUBE_API_KEYS=<API_KEYS,API_KEYS,API_KEYS>
30-
CHANNEL_IDS=<CHANNEL_ID>
31-
DB_CONFIG=./db/YouTubeStats.sqlite3
91+
2. **Persistência em banco**
92+
- Script: `toDatabase.py` ou `periodo.py` (dependendo do escopo da atualização)
93+
3. **Análise de canal específico (pipeline)**
94+
- Script: `pipeline/canalEspecifico.py`
95+
96+
Exemplo de execução:
97+
98+
```bash
99+
python canaisAtualizacaoAnual.py
100+
python toDatabase.py
101+
python pipeline/canalEspecifico.py
32102
```
33-
## ER Diagrama
34103

35-
![image](https://github.com/user-attachments/assets/ba7f69a9-1ee5-4d73-869b-984c032c4f5e)
104+
## Banco de dados
105+
106+
- Script SQL base: `database.sql`
107+
- Banco SQLite local: `db/YouTubeStats.sqlite3`
108+
109+
## Diagrama ER
110+
111+
![ER Diagram](assets/image.png)
112+
113+
114+
## Licença e citação
36115

116+
- Consulte [CITATION.cff](CITATION.cff) para referência acadêmica do projeto.
117+
- Se usar esta base em pesquisa, cite o DOI indicado no topo deste documento.

api/__init__.py

100644100755
File mode changed.

audio/audioScript.py

100644100755
File mode changed.

audio/audio_files/.gitkeep

100644100755
File mode changed.

canaisAtualizacaoAnual.py

100644100755
File mode changed.

channelScript.py

100644100755
File mode changed.

config.py

100644100755
File mode changed.

0 commit comments

Comments
 (0)