Metadata-Version: 2.1
Name: lyricsfandom
Version: 0.2
Summary: Scrape songs on LyricWiki.
Home-page: https://github.com/arthurdjn/scrape-lyricwiki
Author: Arthur Dujardin
Author-email: arthur.dujardin@ensg.eu
License: MIT Licence
Description: # lyricsfandom
        Scrape music data from LyricsWiki (https://lyrics.fandom.com). Artists, Albums, Songs can be extracted.
        
        *Project made during a Deep Learning project for music generation using GPT2 model.*
        
        
        # Installation
        
        Install *lyricsfandom* package from *PyPi*:
        
        ```
        pip install lyricsfandom
        ```
        
        Or from *GitHub*:
        
        ```
        git clone https://github.com/arthurdjn/scrape-lyricwiki
        cd scrape-lyricwiki
        pip install .
        ```
        
        # Getting Started
        
        ## LyricsFandom API
        
        You can search for ``Artist``, ``Album`` or ``Song`` from the API:
        
        ```python
        from lyricsfandom import LyricWiki
        
        # Connect to the API
        wiki = LyricWiki()
        
        # Search for an artist. `LyricsFandom` is not case sensitive.
        artist = wiki.search_artist('london grammar')
        # Search for an album
        album = wiki.search_album('london grammar', 'if you wait')
        # ...Or a song
        song = wiki.search_song('london grammar', 'strong')
        # And retrieve its lyrics
        lyrics = song.get_lyrics()
        ```
        
        ## Structure
        
        The package is divided as follows:
        
        * ArtistMeta
        * AlbumMeta, inherits from ArtistMeta
        * SongMeta, inherits from AlbumMeta
        
        <p align="center">
        <img src="img/lyricsfandom.png" height="600"/>
        </p>
        
        ## Retrieve data
        
        
        Once you have one of these objects, you can also access data directly through their methods:
        
        ```python
        artist = wiki.search_artist('london grammar')
        albums = artist.get_albums()
        songs = artist.get_songs()
        
        # Idem from an album
        album = wiki.search_album('london grammar', 'if you wait')
        songs = album.get_songs()
        ```
        
        In addition, you can retrieve parent objects from children:
        
        ```python
        artist = wiki.search_artist('london grammar')
        song = artist.search_song('strong')
        
        # Access to parent classes
        album = song.get_album()
        artist = song.get_artist()
        ```
        
        You can scrape for description, links and other details information:
        
        ```python
        artist = wiki.search_artist('london grammar')
        info = artist.get_info()  # description of the artist (band members, genres, labels etc.)
        links = artist.get_links()  # links where to buy the artist's music.
        ```
        
        ## Save and export
        
        You can save data in a JSON format (and encode it to ASCII if you want).
        
        ```python
        artist = wiki.search_artist('london grammar')
        artist_data = artist.to_json(encode='ascii')
        # Idem for Album and Song
        ```
        
        # Efficiency
        
        This package can make a lot of connections while scraping data.
        Here is a small comparison of different packages, made on scraping 10 songs from an album.
        *pylyrics3* is the fastest to retrieve data, but it only return lyrics on a JSON format (and not OOP).
        *lyricsfandom* have similar results, but *lyricsmaster* is 10 times slower.
        
        ![img](img/comparison.png)
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Description-Content-Type: text/markdown
