Skip to content

Golang app that seeds AWS DynamoDB with songs and lyrics for a single artist.

License

Notifications You must be signed in to change notification settings

jseashell/aws-genius-lyrics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS Genius Lyrics

Golang app that seeds AWS DynamoDB with songs and lyrics for a single artist.

Running the App

  1. Install Go.

  2. Configure the AWS CLI on your local workstation.

  3. This app stores an artist's songs and lyrics into separate DynamoDB tables. Create tables for "songs" and "lyrics".

  4. Clone the respository

    git clone [email protected]:jseashell/genius-lyrics-seed-service
    cd genius-lyrics-seed-service
  5. Create an .env file and add the necessary values.

    cp .env.example .env
    • GENIUS_ACCESS_TOKEN: Visit https://docs.genius.com/.
    • GENIUS_PRIMARY_ARTIST: Name of the artist to collect.
    • GENIUS_AFFILIATIONS: List of affiliations to include in collections. Affiliations help the search engine, but searching will yield both explicit and implicit affiliations
    • LOG_LEVEL: Log level. Supports "DEBUG", "INFO", "WARN", or "ERROR".
    • AWS_DYNAMODB_SONGS_TABLE_NAME: Name of the table in which to save songs.
    • SKIP_DB: Skips database operations. Typically used for debugging and verification before incurring AWS costs.
  6. Run the app

    make run

Project Structure

.
├── cmd
│   └── main.go             # entry point
├── docs                    # repo documentation
├── internal                # internal packages
│   ├── db                  # dynamodb operations
│   ├── genius              # genius.com integration
│   └── scraper             # web scraper
├── .env.example            # example environment file
├── .gitignore
├── go.mod                  # module dependencies
├── go.sum                  # dependency checksums
├── LICENSE
├── Makefile
└── README.md

3rd party libraries

  • aws-sdk-go-v2 - AWS SDK for the Go programming language.
  • google/uuid - RFC-4122 compliant UUID module by Google.
  • dotenv - A Go (golang) port of the Ruby dotenv project.
  • colly - Lightning Fast and Elegant Scraping Framework for Gophers.

Disclaimer

Repository contributors are not responsible for costs incurred by AWS services.

License

This software is distributed under the terms of the MIT License.

About

Golang app that seeds AWS DynamoDB with songs and lyrics for a single artist.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages