Commit Graph

200 Commits

Author SHA1 Message Date
ritiek
f9e85d3796 albumart out of range exception 2017-09-27 10:22:25 +05:30
Ritiek Malhotra
97a8c21eb9 Download songs using YouTube URL (#135)
* Download from YouTubr URL

* Slugify title only for YouTube URL's
2017-09-27 09:56:47 +05:30
Pierre Gérard
633fb9b1bd [fix] add wait to avoid infinite retry looping (#126) 2017-08-30 20:01:23 +05:30
Luke Garrison
9d25197a5f Improves accuracy of selected youtube video
Finds a balance between viewcount (Youtube's relevancy) and proper song
duration based on Spotify duration. Thus, a Youtube video that is 30
seconds longer than the Spotify track will not be considered

Takes the first result from Youtube (using Youtube's original ordering
based on relevance) that has a similar duration to the Spotify song

Fixes a bug where if there were no suitable videos for a song, the
program would infinitely loop. The program will now retry to find a song
up to 5 times before moving on (this is necessary because occasionally the
song isn't properly fetched or parsed from Youtube)

Fixes bug where songs that are retried were appended to the playlist
file without being separated by a newline
2017-08-09 21:42:31 -04:00
ritiek
67f594c7b0 Don't view sort results if metadata not found 2017-08-02 17:49:16 +05:30
I-Al-Istannen
dbaa890976 Added handling for when there simply is no video
Just return None if no video could be found. Makes it skip instead of error out.
2017-07-24 23:01:05 +02:00
ritiek
5d4f2d5148 Fix traceback when metadata not found 2017-07-25 00:37:37 +05:30
ritiek
6ac25bda0c Fix KeyError when ISRC info unavailable 2017-07-20 05:18:52 +05:30
WMP
4cf8a210bf Change for automatical download video with this same duration as spotify song (#111)
* 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
2017-07-17 20:20:29 +05:30
Ritiek Malhotra
9564a71035 Add -p option to directly download playlists with URL (#110)
* Rough implementation of playlist link

* Clean code

* Add information about playlist URL

* Update README.md

* Fix bug where script selects wrong playlist

* Minor improvements

* Minor improvements
2017-07-12 13:37:15 +05:30
Rutger Rauws
d28ff08a69 Use a Spotify song's title instead of a YouTube video's title (#99)
* Use a Spotify song's title instead of a YouTube video's title

* Added fallback to YouTube title if song's metadata cannot be fetched from Spotify

* Removed duplicate generation of metadata

* Fix test cases that use download_song(..) and generate_filename(..)

* Fix conflicting function

* Fix conflict in check_exists()

* Fix filenames for non spotify songs

* Fix some bugs

* Some documentation changes

* Remove unnecessary determine_filename()
2017-07-11 23:14:56 +05:30
Linus
cc7260dfa6 Add command line option for target folder (-f) 2017-07-11 18:16:41 +02:00
Ritiek Malhotra
5add1fd0f8 Drop python 2 compatibility (#107) 2017-07-11 20:32:26 +05:30
°Kelvin R
a1544bc1c8 Repo in one folder, typos + additions, better layout (#105)
* fix #100

* typos and additions

* better layout for playlists

* typo typo and some changes

* was in the wrong line

* also changed path to avconv.exe
2017-07-09 18:01:46 +05:30
Ritiek Malhotra
b0c3627f51 Fixes #104 2017-07-09 11:27:52 +05:30
WMP
90553875a6 Show youtube link in manual mode (#102) (Fixes #101)
My changes for #101 issue
2017-07-07 23:09:04 +05:30
Ritiek Malhotra
0f0b4bc086 Fix UnicodeDecodeError when retreiving some titles 2017-07-06 17:06:58 +05:30
Linus
0bc484e032 Resolve merge conflict due to refactoring 2017-07-05 21:32:51 +02:00
Linus
920c065fd8 Fix last errors of PEP8 refactoring 2017-07-05 21:28:27 +02:00
Ritiek Malhotra
6307d1e775 Fix windows specific encoding errors 2017-06-29 13:02:03 +05:30
Ritiek
3009fb8583 Fix encoding errors 2017-06-29 12:34:27 +05:30
Linus
e20be5d97e Fix errors introduced with previous code cleanup 2017-06-28 16:21:58 +02:00
Linus
0f384bb5ee Add docstrings; Remove verbose comments; Fix errors introduced with cleanup
This comment will:
- Transform docstrings above functions into docstrings
- Remove some way too verbose comments
- Apply some more recommendations from PEP8 forgotten last time
- Fix some errors introduced with the first code cleanup

Work left to do:
- Add params to docstrings
- Rename file variables
2017-06-28 16:21:58 +02:00
Linus
587f907ed8 Apply most best practices of PEP 8
This refactoring includes:
- Two empty lines before each global function
- Using '{0} {1}'.format(str1, str2) instead of str1 + ' ' + str2
  Sometimes this will make lines longer, sometimes shorter.
- Starting all comments with # + space + comment
- Make lines not longer than 80 characters in most cases
- Renaming some variables to make more sense
- Add some missing code like returns and Exceptions

Not included, but follows:
- Make some comments docstrings
- Rename all 'file' variables, only for Python 2
- Remove some way too verbose comments ;)
2017-06-28 16:21:58 +02:00
Linus Groh
4132e414c4 Add check for nonexistent playlists showing up for some reason (#92) 2017-06-27 14:01:49 +05:30
Ritiek
8af2479389 Update mechanism for fetching playlist tracks 2017-06-26 19:44:02 +05:30
Ritiek Malhotra
e90b5a4b4e Fetches all user playlists now (was limited to 50) 2017-06-26 19:18:22 +05:30
Ritiek Malhotra
1e3631401a Merge branch 'master' into develop 2017-06-26 02:24:29 +05:30
Ritiek
9e2a5751d3 Fix error on conversion in python3 2017-06-25 20:51:59 +05:30
Ritiek
e18a74ccc3 Add metadata test 2017-06-25 02:34:55 +05:30
Ritiek
93244e46ec Fix download test 2017-06-25 01:16:04 +05:30
Ritiek
142d14118b Add more basic tests 2017-06-25 01:05:25 +05:30
Ritiek
0dfaf183b5 Test YouTube track title 2017-06-25 00:31:57 +05:30
Ritiek
69634475ad Test spotify generated songname 2017-06-25 00:04:21 +05:30
Ritiek
ae29ff8f87 Split conversion code 2017-06-24 21:49:19 +05:30
Ritiek
fb3c7e9ec3 Improve metadata fixing mechanism 2017-06-24 20:38:06 +05:30
Ritiek
23e44c1158 Skip if copyright info unavailable 2017-06-23 09:47:29 +05:30
Ritiek
5eba56d125 Message if audio stream not available on YouTube 2017-06-22 13:45:43 +05:30
Ritiek
258b21ff05 Fix getting input in python3 2017-06-22 02:27:18 +05:30
Ritiek
acfb2f0173 Fix encoding problems hopefully 2017-06-21 14:13:32 +05:30
Ritiek
5aa8c66db3 Small encoding changes 2017-06-21 12:58:15 +05:30
Ritiek
9d0e769060 Rename function 2017-06-21 01:02:21 +05:30
Ritiek
0c328079a8 Fix encoding problems in python2 2017-06-21 00:34:24 +05:30
Ritiek Malhotra
464189060f Fix some encoding problems 2017-06-20 22:24:20 +05:30
Ritiek
20d4d7c2d5 Change defaults to FFmpeg 2017-06-20 20:25:47 +05:30
Ritiek
ccf2c818a0 Small updates 2017-06-19 23:23:24 +05:30
Ritiek
ab51545d64 Use subprocess.call() for FFmpeg 2017-06-18 03:52:14 +05:30
Ritiek
086dc846bd Bug fix change tag to tags 2017-06-18 03:27:36 +05:30
Ritiek
80c167e702 Add lots of comments 2017-06-18 02:57:55 +05:30
Ritiek
c270aa8365 Message on unavailable local tracks 2017-06-18 02:16:25 +05:30