Git Product home page Git Product logo

heiiow2 / music-downloader Goto Github PK

View Code? Open in Web Editor NEW
65.0 2.0 8.0 398.98 MB

This program will first get the metadata of various songs from metadata providers like musicbrainz, and then search for download links on pages like bandcamp. Then it will download the song and edit the metadata accordingly.

License: GNU Affero General Public License v3.0

Python 99.76% Shell 0.24%
cli command-line lyrics music python python310

music-downloader's Issues

Error when downloading something from yt

q to quit, ok to download, .. for previous options, . for current options, int for this element: 13
artists: 1; releases 1; tracks 10
0) artist: 'Lorna Shore' from US, 'American deathcore band'

  1. release: 'Immortal'
  2. track: 'Darkest Spawn'
  3. track: 'Death Portrait'
  4. track: 'Hollow Sentence'
  5. track: 'Immortal'
  6. track: 'King Ov Deception'
  7. track: 'Misery System'
  8. track: 'Obsession'
  9. track: 'Relentless Torment'
  10. track: 'This Is Hell'
  11. track: 'Warpath of Disease'

q to quit, ok to download, .. for previous options, . for current options, int for this element: ok
INFO:root:Starting Downloading of metadata
INFO:root:Fetching Download Links
[download] Downloading playlist: GBDHC2012001
[youtube:search] query "GBDHC2012001": Downloading page 1
[youtube:search] query "GBDHC2012001": Downloading page 2
[youtube:search] playlist GBDHC2012001: Downloading 0 videos
[download] Finished downloading playlist: GBDHC2012001
Traceback (most recent call last):
File "/home/lars/Projekts/big projects/music-downloader/src/main.py", line 104, in
cli(start_at=0)
File "/home/lars/Projekts/big projects/music-downloader/src/main.py", line 92, in cli
download_links.Download(file=STEP_TWO_CACHE, metadata_csv=STEP_ONE_CACHE, temp=TEMP, session=session)
File "/media/lars/Volume/Projekts/big projects/music-downloader/src/download_links.py", line 29, in init
youtube_url = youtube_music.get_youtube_url(row)
File "/media/lars/Volume/Projekts/big projects/music-downloader/src/youtube_music.py", line 31, in get_youtube_url
result = get_youtube_from_isrc(row['isrc'])
File "/media/lars/Volume/Projekts/big projects/music-downloader/src/youtube_music.py", line 17, in get_youtube_from_isrc
video = ydl.extract_info(f"ytsearch:{isrc}", download=False)['entries'][0]
IndexError: list index out of range

use yt-dlp instead of youtube-dl

yt-dlp doesn't seem to have the same download speed restrictions that youtube-dl does.

It might even be a drop in replacement?

TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'

Hello!
After installing the program using pip, I get the following error when running it.
Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.9/bin/music-kraken", line 5, in <module> from music_kraken import cli File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/music_kraken/__init__.py", line 15, in <module> from .lyrics import lyrics File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/music_kraken/lyrics/lyrics.py", line 5, in <module> from . import genius File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/music_kraken/lyrics/genius.py", line 25, in <module> class Song: File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/music_kraken/lyrics/genius.py", line 66, in Song def fetch_lyrics(self) -> str | None: TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'
I'm on MacOS Big Sur, Python 3.9.4
Would someone mind checking this out?

Using track name as a secondary option

I think that the current approach of only using ISRC for YouTube searches is a bit problematic. While it's correct that YouTube finds it out quickly via ISRC, not all songs there have ISRCs (as YouTube cares less about music than, say, Spotify), and sometimes the music just appears on the top through a search of its name. I am also not sure about how music-kraken handles music in different languages - musicbrainz tends to list their transcription - and rather lists its original name as an alias
It would be nice if the scraper searches for the name if both ISRC and Musify fails.

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.