Skip to main content

tswift

This repo is actually not directly related to Taylor Swift. It’s just a simple Python API for getting lyrics from MetroLyrics. Here is how easy it is:

from tswift import Artist
import random

tswift = Artist('Taylor Swift')
song = random.choice(tswift.songs)
print(song.format())

Setup

This package depends on lxml, requests, and google. These should be installed when you install this package from pip:

pip install tswift

After installing, you can also print a random Taylor Swift song lyric with the command:

tswift

CLI

The module comes with a simple command line interface. By default, it will display a random song by Taylor Swift. You can specify an artist like this:

tswift 'Lynyrd Skynyrd'

You can choose a particular song:

tswift 'Lynyrd Skynyrd' -s Freebird

There is also a “lyric search mode”, which allows you to search for a song by lyrics, e.g.:

tswift -l 'I would walk 500 miles'

Im Gonna Be 500 Miles
Proclaimers
---------------------

When I wake up, well I know I'm gonna be,
I'm gonna be the man who wakes up next you
...

API

Artist class

The constructor takes a single argument, the artist name. This name will be “slugified” in order to use it within URLs. This process involves replacing spaces with hyphens, and making everything lowercase. If this is not sufficient for your particular artist, you’ll need to provide a pre-slugified version of their name.

  • songs - a list of Song instances by this artist. This will call load() if it hasn’t been called yet

  • name - the artist’s slugified name

  • load() - populates the songs list

Song class

The constructor can be called in two ways. In the first, you provide a Metrolyrics URL, and the class will infer the artist and song title:

s = Song(url='url here')

In the second way, you provide a title and artist, which will be slugified.

s = Song('Taylor Swift', 'Love Story')

The attributes are:

  • lyrics - a string. Accessing this will call load() if not yet loaded

  • title - de-slugified title of song

  • artist - de-slugified artist name

  • load() - loads the lyrics

  • format() - returns the lyrics, with a header that includes the title and artist.

The static method Song.find_song(lyrics) takes a string with a search term, and performs a Google search. It returns a Song instance corresponding to the first Metrolyrics link it finds, stopping after 20 results. If nothing is found, returns None.

Release files for tswift 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tswift 0.7.0
File Size Uploaded
tswift-0.7.0.tar.gz 5.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tswift 0.7.0
File Interpreter ABI Platform
tswift-0.7.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 11.3 kB

Release files / tswift-0.7.0.tar.gz

Download URL tswift-0.7.0.tar.gz
Size 5.2 kB
Tags Source
SHA-256 checksum
How to use checksums
6d1513e012c23201398c65dc29111c97d59472d7f7cec4578528872630e9eeb3
BLAKE2b-256 checksum
How to use checksums
4f0eb9a5308c034405adc0d2d21f3acf8a4a33dbf04852e70fd315bc949a29e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

Release files / tswift-0.7.0-py2.py3-none-any.whl

Download URL tswift-0.7.0-py2.py3-none-any.whl
Size 6.1 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
dd217370b1010f6c11999ffeed4a881f954f487bf6736cca2c22e6c4e5311a48
BLAKE2b-256 checksum
How to use checksums
3336ba45cba648a688190d9fe6ed267ae2074b85278b05a9e13cce9c9454adad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.0

1 release file

0.4.0

2 release files

0.3.0

2 release files

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page