mirror of
https://github.com/KevinMidboe/spotify-downloader.git
synced 2025-10-29 18:00:15 +00:00
* Changes in .gitignore file:
- added .python-version
This file is used in pyenv to select good python version.
Changes in core/misc.py:
- added function get_sec to convert HH:mm:ss to seconds
Changes in spotdl.py:
- in function generate_songname
change function to receive generate_metadata, this is optymalization, becouse in oldest version metadata from spotify api is downlaoded 2 times
- in function generate_youtube_url
song variable use changed function generate_songname
function now looking for songs in while, and save data to dict. Dictionary is used in manual and auto mode. In dictionary keep is youtube link, title, videotime (in format HH:mm:ss) and videotime converted to seconds.
For now in automatic downloading is selected video with least difference betwen youtube video time and time from spotify. This is important, becouse in youtube a lot of movies has scenes before/after without musics.
* Fix parameter in generate_songname() and dual calls
* Fix tests
* Skip tests that depend on the location (for the moment)
* Remove unnecessary code
91 lines
3.1 KiB
Python
91 lines
3.1 KiB
Python
# -*- coding: UTF-8 -*-
|
|
|
|
import spotdl
|
|
import os
|
|
|
|
raw_song = 'http://open.spotify.com/track/0JlS7BXXD07hRmevDnbPDU'
|
|
|
|
for x in os.listdir(spotdl.args.folder):
|
|
os.remove(os.path.join(spotdl.args.folder, x))
|
|
|
|
|
|
def test_spotify_title():
|
|
expect_title = 'David André Østby - Intro'
|
|
meta_tags = spotdl.generate_metadata(raw_song)
|
|
title = spotdl.generate_songname(meta_tags)
|
|
assert title == expect_title
|
|
|
|
|
|
def youtube_url():
|
|
expect_url = 'youtube.com/watch?v=rg1wfcty0BA'
|
|
url = spotdl.generate_youtube_url(raw_song)
|
|
assert url == expect_url
|
|
|
|
|
|
def youtube_title():
|
|
expect_title = 'Intro - David André Østby'
|
|
content = spotdl.go_pafy(raw_song)
|
|
title = spotdl.get_youtube_title(content)
|
|
print(title)
|
|
assert title == expect_title
|
|
|
|
|
|
def test_check_exists():
|
|
expect_check = False
|
|
# prerequisites for determining filename
|
|
meta_tags = spotdl.generate_metadata(raw_song)
|
|
songname = spotdl.generate_songname(meta_tags)
|
|
file_name = spotdl.misc.sanitize_title(songname)
|
|
check = spotdl.check_exists(file_name, raw_song, islist=True)
|
|
assert check == expect_check
|
|
|
|
|
|
def test_download():
|
|
expect_download = True
|
|
# prerequisites for determining filename
|
|
content = spotdl.go_pafy(raw_song)
|
|
meta_tags = spotdl.generate_metadata(raw_song)
|
|
songname = spotdl.generate_songname(meta_tags)
|
|
file_name = spotdl.misc.sanitize_title(songname)
|
|
download = spotdl.download_song(file_name, content)
|
|
assert download == expect_download
|
|
|
|
|
|
def test_convert():
|
|
# exit code 0 = success
|
|
expect_convert = 0
|
|
# prerequisites for determining filename
|
|
meta_tags = spotdl.generate_metadata(raw_song)
|
|
songname = spotdl.generate_songname(meta_tags)
|
|
file_name = spotdl.misc.sanitize_title(songname)
|
|
input_song = file_name + spotdl.args.input_ext
|
|
output_song = file_name + spotdl.args.output_ext
|
|
convert = spotdl.convert.song(input_song, output_song, spotdl.args.folder)
|
|
assert convert == expect_convert
|
|
|
|
|
|
def test_metadata():
|
|
expect_metadata = True
|
|
# prerequisites for determining filename
|
|
meta_tags = spotdl.generate_metadata(raw_song)
|
|
songname = spotdl.generate_songname(meta_tags)
|
|
meta_tags = spotdl.generate_metadata(raw_song)
|
|
file_name = spotdl.misc.sanitize_title(songname)
|
|
output_song = file_name + spotdl.args.output_ext
|
|
metadata_output = spotdl.metadata.embed(os.path.join(spotdl.args.folder, output_song), meta_tags)
|
|
input_song = file_name + spotdl.args.input_ext
|
|
metadata_input = spotdl.metadata.embed(os.path.join(spotdl.args.folder, input_song), meta_tags)
|
|
assert metadata_output == (metadata_input == expect_metadata)
|
|
|
|
|
|
def test_check_exists2():
|
|
expect_check = True
|
|
# prerequisites for determining filename
|
|
meta_tags = spotdl.generate_metadata(raw_song)
|
|
songname = spotdl.generate_songname(meta_tags)
|
|
file_name = spotdl.misc.sanitize_title(songname)
|
|
input_song = file_name + spotdl.args.input_ext
|
|
os.remove(os.path.join(spotdl.args.folder, input_song))
|
|
check = spotdl.check_exists(file_name, raw_song, islist=True)
|
|
assert check == expect_check
|