{"id":19885836,"url":"https://github.com/konjoinfinity/songscraper","last_synced_at":"2025-05-02T16:31:51.869Z","repository":{"id":113907019,"uuid":"603644240","full_name":"konjoinfinity/songscraper","owner":"konjoinfinity","description":"A song chart scraper for converting ultimate guitar tabs and charts into google docs 🎶🎵🎸🎹📄","archived":false,"fork":false,"pushed_at":"2024-05-27T17:27:59.000Z","size":15126,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-07T03:34:43.975Z","etag":null,"topics":["chart","cheerio","googledocs","googledrive","googledriveapi","music","pupeteer","scraper"],"latest_commit_sha":null,"homepage":"https://www.ultimate-guitar.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/konjoinfinity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-19T06:09:44.000Z","updated_at":"2024-05-27T17:28:03.000Z","dependencies_parsed_at":"2024-05-27T19:48:58.530Z","dependency_job_id":"cf1322e2-a064-4b17-981f-c049551ce8ab","html_url":"https://github.com/konjoinfinity/songscraper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/konjoinfinity%2Fsongscraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/konjoinfinity%2Fsongscraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/konjoinfinity%2Fsongscraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/konjoinfinity%2Fsongscraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/konjoinfinity","download_url":"https://codeload.github.com/konjoinfinity/songscraper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252071848,"owners_count":21690100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chart","cheerio","googledocs","googledrive","googledriveapi","music","pupeteer","scraper"],"created_at":"2024-11-12T17:35:38.206Z","updated_at":"2025-05-02T16:31:46.844Z","avatar_url":"https://github.com/konjoinfinity.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Song Scraper 🎶🎵🎸🎹📄\n\n## An ultimate-guitar chord chart scraper that creates a new google doc and applies formatting.\n\n![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)\n![Pupeteer](https://img.shields.io/badge/Puppeteer-40B5A4?style=for-the-badge\u0026logo=Puppeteer\u0026logoColor=white)\n![Google Drive](https://img.shields.io/badge/Google%20Drive-4285F4?style=for-the-badge\u0026logo=googledrive\u0026logoColor=white)\n![Google Cloud](https://img.shields.io/badge/GoogleCloud-%234285F4.svg?style=for-the-badge\u0026logo=google-cloud\u0026logoColor=white)\n-\n[![GitHub license](https://badgen.net/github/license/Naereen/Strapdown.js)](https://github.com/Naereen/StrapDown.js/blob/master/LICENSE)\n[![made-with-javascript](https://img.shields.io/badge/Made%20with-JavaScript-1f425f.svg)](https://www.javascript.com)\n\n## Features\n\n- [x] Accepts an ultimate-guitar url, scrapes the song data, creates a new google docs document from a template with the song name, and inserts the formatted text into the song template.\n- [x] Removes '[ ]' brackets from section titles.\n- [x] Recognizes various musical chords and associated notation.\n- [x] Filters and updates formatting (bold/unbold) for section titles, chords, lyrics, and more.\n- [x] Automatically renames the document as: 'song name - artist'.\n- [x] Automatically opens and closes the browser.\n- [x] Works with a variety of song formats from Ultimate Guitar, removes comments, splits the text to fit into two columns.\n- [x] Adding the ability to choose the song key/capo. ***This works but you have to know how many steps up or down ahead of time***\n\n## Room for Improvement\n\n- [ ] Adding another browser tab/window the newly created document after completion.\n- [ ] Proxy for puppeteer, to appear from a different IP address each scrape.\n- [ ] Adding human like actions like clicking, moving the mouse randomly, selecting, etc. to appear as a normal user.\n- [ ] Logic to recognize repeating chord patterns within sections, delete duplicates and move chord progression next to the section title.\n- [ ] Automatically export to PDF and download after doc creation and formatting completes.\n- [ ] Deploy to a live url, not necessary but might be useful in the future.\n\n## Tech/frameworks used\n\n - @google-cloud/local-auth\n - @googleapis/docs\n - @types/node\n - axios\n - cheerio\n - googleapis\n - node-fetch\n - puppeteer\n - request\n - request-promise\n\n## Motivation\n\nBuilt to automate a manual process: Copying pasting chord charts from ultimate-guitar and manually formatting google docs song charts.\n\n## Screnshots\n\n![je](https://user-images.githubusercontent.com/46323883/235279813-59508b30-e894-4488-b88e-c9ed06468d63.png)\n\n![Middle](https://user-images.githubusercontent.com/46323883/235279818-5345229f-90d0-4423-b4e1-f601b8081260.png)\n\n![ssje](https://user-images.githubusercontent.com/46323883/235279875-9a96ad1f-c4a7-4e3e-8eb7-eaf6f65d85dc.png)\n\n## License\n\nMIT © [Konjo Tech - Wesley Scholl](2023)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonjoinfinity%2Fsongscraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkonjoinfinity%2Fsongscraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonjoinfinity%2Fsongscraper/lists"}