Skip to main content

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 .env file
  • Access to Spotify and AWS

🪪 License

MIT © Facu Vega
https://github.com/facuvegaingenieer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

track_flow-0.1.6.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

track_flow-0.1.6-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file track_flow-0.1.6.tar.gz.

File metadata

  • Download URL: track_flow-0.1.6.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for track_flow-0.1.6.tar.gz
Algorithm Hash digest
SHA256 ef1de75db331556da3d36f82006e850afa1a243d3ca619c9ced37ff88945fe07
MD5 ed8bcb52ff6dc546473b3f54c5125a38
BLAKE2b-256 4e86a3d26233dc6fcb2fbbb444f8f4339283298a8bfa9a1e92962c8dbaf54128

See more details on using hashes here.

File details

Details for the file track_flow-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: track_flow-0.1.6-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

Hashes for track_flow-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 024618fc3cb3c47100c537d15f802778f0a9413c28795d050ef45b97cf800b05
MD5 ebc7c620cc7b177a9591838e2b990148
BLAKE2b-256 1b0b2495477a8a57358ce0f17ce2adbf90ba0f79d23b12fa59f07a69d8fe1ad8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page