ETL para extraer, transformar y cargar datos de charts de spotify en S3
Project description
Track Flow / Flujo de Seguimiento
ES / Español 🇪🇸
track-flow es una librería modular en Python diseñada para implementar un pipeline ETL completo, ideal para flujos de trabajo donde se requiere extracción, transformación y carga de datos de forma eficiente y reutilizable.
🚀 Características
- Extracción desde APIs externas (por ejemplo, Spotify)
- Transformación de datos en DTOs
- Almacenamiento en formato Parquet
- Carga en Amazon S3 u otros destinos
- Configuración flexible mediante variables de entorno
- Uso como librería o desde línea de comandos
⚙️ Variables de entorno necesarias
Debes definir un archivo .env en la raíz de tu proyecto con las siguientes variables:
# Claves AWS
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
# Bucket de destino
AWS_BUCKET_SONG_NAME=
# Datos a procesar
TRACK_LIST=2U3UUpx6ocHXgvcXmq0YBw # ID de playlist o track de Spotify
#CLIENT AND CLIENT SECRET SPOTIFY
CLIENT_ID_SPOTIFY=
CLIENT_SECRET_SPOTIFY=
# Directorio de salida local
ETL_OUTPUT_DIR=output
📦 Instalación
pip install track-flow
💻 Uso básico
Como script:
trackflow
Como módulo de Python:
from track_flow.main import main
main()
🧠 Requisitos
- Python >= 3.9
- Tener configurado el archivo
.env - Acceso válido a la API de Spotify y AWS
🪪 Licencia
MIT © Facu Vega
https://github.com/facuvegaingenieer
EN / English 🇬🇧
track-flow is a modular Python library that implements a full ETL pipeline, ideal for workflows requiring robust data extraction, transformation, and loading in a reusable and configurable way.
🚀 Features
- Extraction from external APIs (e.g., Spotify)
- Data transformation into DTOs
- Storage as Parquet files
- Upload to Amazon S3 or other destinations
- Environment-based configuration
- Usable as a library or from the command line
⚙️ Required Environment Variables
You must define a .env file at the root of your project with the following variables:
# AWS credentials
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
# S3 Bucket
AWS_BUCKET_SONG_NAME=
# Data to extract
TRACK_LIST=2U3UUpx6ocHXgvcXmq0YBw # Playlist or track ID from Spotify
# Local output directory
ETL_OUTPUT_DIR=output
📦 Installation
pip install track-flow
💻 Basic Usage
As CLI:
trackflow
As a Python module:
from track_flow.main import main
main()
🧠 Requirements
- Python >= 3.9
- Valid
.envfile - Access to Spotify and AWS
🪪 License
MIT © Facu Vega
https://github.com/facuvegaingenieer
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file track_flow-0.1.5.tar.gz.
File metadata
- Download URL: track_flow-0.1.5.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab5a3103a092651d37f8a2af928af3996d6bb6f774ea7d22e3dac33d561e91b7
|
|
| MD5 |
84f798f984b783c888ad2d79561342ec
|
|
| BLAKE2b-256 |
47d4813e4d7cc433d0cd0791875793fc384f1d37eec34bfe8d1d347406f173b4
|
File details
Details for the file track_flow-0.1.5-py3-none-any.whl.
File metadata
- Download URL: track_flow-0.1.5-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97b7689c4a4c2bfc8c42a31424f7f061d987b3c3527ecc1bb4b9b1e113527068
|
|
| MD5 |
4a873fa72f7b1c561f56e7bdbd71777e
|
|
| BLAKE2b-256 |
7b1e89bec8a6652dfd7a9fa6afd2418e59f9fb856c457d14fae0630b57acd68d
|