Git Product home page Git Product logo

guitartabs's Introduction

Collect tabs from various websites and group them into an ebook (for Kindle)

Source \ Supported features Basic content Chord aligned Chord short description Chord long description
azchords.com Yes Yes
boiteachansons.net Yes
e-chords.com Yes Yes Yes Yes
guitaretab.com Yes Yes Yes Yes
guitartabs.cc Yes Yes Yes
guitartabsexplorer.com Yes Yes
songsterr.com
tabs4acoustic.com Yes Yes Yes
ultimate-guitar.com Yes Yes Yes Yes

The files in output correspond to the output with the file input_examples/list_of_urls_of_tabs.txt.

Usage

usage: main.py [-h] [--mobi] [--pdf] [--tabfile TABFILE] [--listfile LISTFILE] [--output OUTPUT] [--name NAME]

Download tabs and generate HTML and/or PDF and/or Mobi files

optional arguments:
  -h, --help            show this help message and exit
  --mobi, -m            Generate mobi file
  --pdf, -p             Generate pdf file
  --tabfile TABFILE, -t TABFILE
                        File containing URL for tabs
  --listfile LISTFILE, -l LISTFILE
                        File containing URL for lists of tabs
  --output OUTPUT, -o OUTPUT
                        File containing URL for lists of tabs (".html" suffix not required)
  --name NAME, -n NAME  Name for for generated book

guitartabs's People

Contributors

sylvainde avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

guitartabs's Issues

Better printing format

Current CSS is minimal but tweaks to the printing format could be handled. It would be a nice touch to have a new page after each song.

Handle new data from UltimateGuitar tabs

Visiting ultimateguitare.com recently, I had the feeling that a few things had changed (piano tabs ?).
This would not appear in my local tests as I have a cache of webpages retrieved. It may be worth trying to move the cache and check how different the new results are (is everything working properly ? are there any relevant pieces of information we could rely on ?)

Invalid HTML content for some tabs

  1. GuitarTabFromGuitarTabDotCom -> ok
  2. GuitarTabFromGuitarTabsExplorer -> not perfect
  1. GuitarTabFromGuitarTabsDotCc -> ok
  2. GuitarTabFromTabs4Acoustic -> ko
  • All songs: extra "pre" starting the tab content
  1. GuitarTabFromUltimateGuitar -> not perfect
  1. GuitarTabFromEChords -> ok
  1. GuitarTabFromSongsterr -> ok
  1. GuitarTabFromBoiteAChansons

tbc

Pretty print strumming patterns

The strumming pattern is described via a list of values, a denuminator integer and a is_triplet flag.
On the ultimateguitar website, this is rendered in different ways that would be nice to emulate somehow.

First step is to collect data and see how they are displayed on the original website.

Some lists from boiteachansons are not retrieved properly

$ python main.py -l input_examples/list_of_urls_of_list.txt

https://www.boiteachansons.net/partitions/nouveautes: 0 tabs retrieved
https://www.boiteachansons.net/partitions/top50Chansons: 0 tabs retrieved
https://www.boiteachansons.net/partitions/Z: 0 tabs retrieved


https://www.boiteachansons.net/partitions/aleatoire: 50 tabs retrieved
https://www.boiteachansons.net/artistes/the-beatles: 206 tabs retrieved

HTML escaping for UltimateGuitarTabs is not quite right

For https://tabs.ultimate-guitar.com/tab/the-beatles/here-comes-the-sun-tabs-201130 for instance, we can see:

1 & 2 & 3 & 4 & 5 & 6 & 1 & 2 & 1 & 2 & 3 & 4 &

Corresponding HTML code is:

1 & 2 & 3 & 4 & 5 & 6 & 1 & 2 & 1 & 2 & 3 & 4 &

This should have been:

1 & 2 & 3 & 4 & 5 & 6 & 1 & 2 & 1 & 2 & 3 & 4 &

Corresponding HTML code is:

1 & 2 & 3 & 4 & 5 & 6 & 1 & 2 &

This is caused by the call to content = htmlmodule.escape(content) but removing it is not a solution. Indeed, in a different song, the HTML code becomes ...end harmonica solo.> instead of ...end harmonica solo.>. This leads to invalid HTML code (detected by kindlegen).

A better solution should be found.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.