SpotDown 0.0.7__tar.gz → 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. {spotdown-0.0.7/SpotDown.egg-info → spotdown-0.1.0}/PKG-INFO +8 -14
  2. {spotdown-0.0.7 → spotdown-0.1.0}/README.md +8 -12
  3. spotdown-0.1.0/SpotDown/__init__.py +7 -0
  4. {spotdown-0.0.7 → spotdown-0.1.0/SpotDown.egg-info}/PKG-INFO +8 -14
  5. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown.egg-info/SOURCES.txt +0 -2
  6. spotdown-0.1.0/SpotDown.egg-info/entry_points.txt +2 -0
  7. spotdown-0.1.0/setup.py +39 -0
  8. spotdown-0.0.7/MANIFEST.in +0 -3
  9. spotdown-0.0.7/SpotDown/downloader/__init__.py +0 -0
  10. spotdown-0.0.7/SpotDown.egg-info/entry_points.txt +0 -2
  11. spotdown-0.0.7/requirements.txt +0 -8
  12. spotdown-0.0.7/setup.py +0 -46
  13. {spotdown-0.0.7 → spotdown-0.1.0}/LICENSE +0 -0
  14. {spotdown-0.0.7/SpotDown → spotdown-0.1.0/SpotDown/downloader}/__init__.py +0 -0
  15. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown/downloader/youtube_downloader.py +0 -0
  16. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown/extractor/__init__.py +0 -0
  17. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown/extractor/spotify_extractor.py +0 -0
  18. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown/extractor/youtube_extractor.py +0 -0
  19. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown/main.py +0 -0
  20. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown/utils/__init__.py +0 -0
  21. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown/utils/config_json.py +0 -0
  22. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown/utils/console_utils.py +0 -0
  23. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown/utils/file_utils.py +0 -0
  24. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown/utils/headers.py +0 -0
  25. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown.egg-info/dependency_links.txt +0 -0
  26. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown.egg-info/requires.txt +0 -0
  27. {spotdown-0.0.7 → spotdown-0.1.0}/SpotDown.egg-info/top_level.txt +0 -0
  28. {spotdown-0.0.7 → spotdown-0.1.0}/setup.cfg +0 -0
@@ -1,11 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: SpotDown
3
- Version: 0.0.7
3
+ Version: 0.1.0
4
4
  Home-page: https://github.com/Arrowar/SpotDown
5
5
  Author: Arrowar
6
6
  Project-URL: Bug Reports, https://github.com/Arrowar/SpotDown/issues
7
7
  Project-URL: Source, https://github.com/Arrowar/SpotDown
8
- Keywords: streaming community
9
8
  Requires-Python: >=3.8
10
9
  Description-Content-Type: text/markdown
11
10
  License-File: LICENSE
@@ -21,14 +20,11 @@ Dynamic: author
21
20
  Dynamic: description
22
21
  Dynamic: description-content-type
23
22
  Dynamic: home-page
24
- Dynamic: keywords
25
23
  Dynamic: license-file
26
24
  Dynamic: project-url
27
25
  Dynamic: requires-dist
28
26
  Dynamic: requires-python
29
27
 
30
- # SpotDown 🎵
31
-
32
28
  <div align="center">
33
29
 
34
30
  ## 📊 Project Status & Info
@@ -56,21 +52,19 @@ Dynamic: requires-python
56
52
  ## 📋 Table of Contents
57
53
 
58
54
  - [✨ Features](#features)
59
- - [🛠️ Installation](#installation)
55
+ - [🛠️ Installation](#️installation)
60
56
  - [⚙️ Configuration](#configuration)
61
57
  - [💻 Usage](#usage)
62
- - [📁 Project Structure](#project-structure)
63
- - [🔧 Dependencies](#dependencies)
64
58
  - [⚠️ Disclaimer](#disclaimer)
65
59
 
66
- ## Features
60
+ ## Features
67
61
 
68
62
  - 🎵 **Download individual songs** from Spotify
69
63
  - 📋 **Download entire playlists** with ease
70
64
  - 🔍 **No authentication required** - uses web scraping
71
65
  - 🎨 **Automatic cover art embedding** (JPEG format)
72
66
 
73
- ## 🛠️ Installation
67
+ ## Installation
74
68
 
75
69
  ### Prerequisites
76
70
 
@@ -101,7 +95,7 @@ if __name__ == "__main__":
101
95
  main()
102
96
  ```
103
97
 
104
- ## ⚙️ Configuration
98
+ ## Configuration
105
99
 
106
100
  SpotDown uses a JSON configuration file with the following structure:
107
101
 
@@ -136,7 +130,7 @@ SpotDown uses a JSON configuration file with the following structure:
136
130
  - **`headless`**: Run browser in background (recommended: true)
137
131
  - **`timeout`**: Browser timeout in seconds
138
132
 
139
- ## 💻 Usage
133
+ ## Usage
140
134
 
141
135
  ### Basic Usage
142
136
 
@@ -159,13 +153,13 @@ python run.py
159
153
  2. Paste the Spotify playlist URL when prompted
160
154
  3. All songs in the playlist will be downloaded automatically
161
155
 
162
- ## 📝 To Do
156
+ ## To Do
163
157
 
164
158
  - [ ] Implement batch download queue
165
159
  - [ ] Add GUI interface option
166
160
  - [ ] Support for additional music platforms
167
161
 
168
- ## ⚠️ Disclaimer
162
+ ## Disclaimer
169
163
 
170
164
  This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement.
171
165
 
@@ -1,5 +1,3 @@
1
- # SpotDown 🎵
2
-
3
1
  <div align="center">
4
2
 
5
3
  ## 📊 Project Status & Info
@@ -27,21 +25,19 @@
27
25
  ## 📋 Table of Contents
28
26
 
29
27
  - [✨ Features](#features)
30
- - [🛠️ Installation](#installation)
28
+ - [🛠️ Installation](#️installation)
31
29
  - [⚙️ Configuration](#configuration)
32
30
  - [💻 Usage](#usage)
33
- - [📁 Project Structure](#project-structure)
34
- - [🔧 Dependencies](#dependencies)
35
31
  - [⚠️ Disclaimer](#disclaimer)
36
32
 
37
- ## Features
33
+ ## Features
38
34
 
39
35
  - 🎵 **Download individual songs** from Spotify
40
36
  - 📋 **Download entire playlists** with ease
41
37
  - 🔍 **No authentication required** - uses web scraping
42
38
  - 🎨 **Automatic cover art embedding** (JPEG format)
43
39
 
44
- ## 🛠️ Installation
40
+ ## Installation
45
41
 
46
42
  ### Prerequisites
47
43
 
@@ -72,7 +68,7 @@ if __name__ == "__main__":
72
68
  main()
73
69
  ```
74
70
 
75
- ## ⚙️ Configuration
71
+ ## Configuration
76
72
 
77
73
  SpotDown uses a JSON configuration file with the following structure:
78
74
 
@@ -107,7 +103,7 @@ SpotDown uses a JSON configuration file with the following structure:
107
103
  - **`headless`**: Run browser in background (recommended: true)
108
104
  - **`timeout`**: Browser timeout in seconds
109
105
 
110
- ## 💻 Usage
106
+ ## Usage
111
107
 
112
108
  ### Basic Usage
113
109
 
@@ -130,13 +126,13 @@ python run.py
130
126
  2. Paste the Spotify playlist URL when prompted
131
127
  3. All songs in the playlist will be downloaded automatically
132
128
 
133
- ## 📝 To Do
129
+ ## To Do
134
130
 
135
131
  - [ ] Implement batch download queue
136
132
  - [ ] Add GUI interface option
137
133
  - [ ] Support for additional music platforms
138
134
 
139
- ## ⚠️ Disclaimer
135
+ ## Disclaimer
140
136
 
141
137
  This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement.
142
138
 
@@ -150,4 +146,4 @@ This software is provided "as is", without warranty of any kind, express or impl
150
146
 
151
147
  *If you find this project useful, consider starring it! ⭐*
152
148
 
153
- </div>
149
+ </div>
@@ -0,0 +1,7 @@
1
+ # 11.03.25
2
+
3
+ from .main import run
4
+
5
+ __all__ = [
6
+ "run",
7
+ ]
@@ -1,11 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: SpotDown
3
- Version: 0.0.7
3
+ Version: 0.1.0
4
4
  Home-page: https://github.com/Arrowar/SpotDown
5
5
  Author: Arrowar
6
6
  Project-URL: Bug Reports, https://github.com/Arrowar/SpotDown/issues
7
7
  Project-URL: Source, https://github.com/Arrowar/SpotDown
8
- Keywords: streaming community
9
8
  Requires-Python: >=3.8
10
9
  Description-Content-Type: text/markdown
11
10
  License-File: LICENSE
@@ -21,14 +20,11 @@ Dynamic: author
21
20
  Dynamic: description
22
21
  Dynamic: description-content-type
23
22
  Dynamic: home-page
24
- Dynamic: keywords
25
23
  Dynamic: license-file
26
24
  Dynamic: project-url
27
25
  Dynamic: requires-dist
28
26
  Dynamic: requires-python
29
27
 
30
- # SpotDown 🎵
31
-
32
28
  <div align="center">
33
29
 
34
30
  ## 📊 Project Status & Info
@@ -56,21 +52,19 @@ Dynamic: requires-python
56
52
  ## 📋 Table of Contents
57
53
 
58
54
  - [✨ Features](#features)
59
- - [🛠️ Installation](#installation)
55
+ - [🛠️ Installation](#️installation)
60
56
  - [⚙️ Configuration](#configuration)
61
57
  - [💻 Usage](#usage)
62
- - [📁 Project Structure](#project-structure)
63
- - [🔧 Dependencies](#dependencies)
64
58
  - [⚠️ Disclaimer](#disclaimer)
65
59
 
66
- ## Features
60
+ ## Features
67
61
 
68
62
  - 🎵 **Download individual songs** from Spotify
69
63
  - 📋 **Download entire playlists** with ease
70
64
  - 🔍 **No authentication required** - uses web scraping
71
65
  - 🎨 **Automatic cover art embedding** (JPEG format)
72
66
 
73
- ## 🛠️ Installation
67
+ ## Installation
74
68
 
75
69
  ### Prerequisites
76
70
 
@@ -101,7 +95,7 @@ if __name__ == "__main__":
101
95
  main()
102
96
  ```
103
97
 
104
- ## ⚙️ Configuration
98
+ ## Configuration
105
99
 
106
100
  SpotDown uses a JSON configuration file with the following structure:
107
101
 
@@ -136,7 +130,7 @@ SpotDown uses a JSON configuration file with the following structure:
136
130
  - **`headless`**: Run browser in background (recommended: true)
137
131
  - **`timeout`**: Browser timeout in seconds
138
132
 
139
- ## 💻 Usage
133
+ ## Usage
140
134
 
141
135
  ### Basic Usage
142
136
 
@@ -159,13 +153,13 @@ python run.py
159
153
  2. Paste the Spotify playlist URL when prompted
160
154
  3. All songs in the playlist will be downloaded automatically
161
155
 
162
- ## 📝 To Do
156
+ ## To Do
163
157
 
164
158
  - [ ] Implement batch download queue
165
159
  - [ ] Add GUI interface option
166
160
  - [ ] Support for additional music platforms
167
161
 
168
- ## ⚠️ Disclaimer
162
+ ## Disclaimer
169
163
 
170
164
  This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement.
171
165
 
@@ -1,7 +1,5 @@
1
1
  LICENSE
2
- MANIFEST.in
3
2
  README.md
4
- requirements.txt
5
3
  setup.py
6
4
  SpotDown/__init__.py
7
5
  SpotDown/main.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ spotdown = SpotDown.main:run
@@ -0,0 +1,39 @@
1
+ import os
2
+ import re
3
+ from setuptools import setup, find_packages
4
+
5
+ def read_readme():
6
+ with open("README.md", "r", encoding="utf-8") as fh:
7
+ return fh.read()
8
+
9
+ requirements_path = os.path.join(os.path.dirname(__file__), "requirements.txt")
10
+ if os.path.exists(requirements_path):
11
+ with open(requirements_path, "r", encoding="utf-8-sig") as f:
12
+ required_packages = f.read().splitlines()
13
+ else:
14
+ required_packages = []
15
+
16
+ def get_version():
17
+ return "0.1.0"
18
+
19
+ setup(
20
+ name="SpotDown",
21
+ version=get_version(),
22
+ long_description=read_readme(),
23
+ long_description_content_type="text/markdown",
24
+ author="Arrowar",
25
+ url="https://github.com/Arrowar/SpotDown",
26
+ packages=find_packages(include=["SpotDown", "SpotDown.*"]),
27
+ install_requires=required_packages,
28
+ python_requires='>=3.8',
29
+ entry_points={
30
+ "console_scripts": [
31
+ "spotdown=SpotDown.main:run",
32
+ ],
33
+ },
34
+ include_package_data=True,
35
+ project_urls={
36
+ "Bug Reports": "https://github.com/Arrowar/SpotDown/issues",
37
+ "Source": "https://github.com/Arrowar/SpotDown"
38
+ }
39
+ )
@@ -1,3 +0,0 @@
1
- include README.md
2
- include requirements.txt
3
- recursive-include SpotDown *.txt *.md *.json
File without changes
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- SpotDown = SpotDown.run:main
@@ -1,8 +0,0 @@
1
- rich
2
- httpx
3
- playwright
4
- unidecode
5
- ua-generator
6
- unidecode
7
- yt-dlp
8
- Pillow
spotdown-0.0.7/setup.py DELETED
@@ -1,46 +0,0 @@
1
- import os
2
- import re
3
- from setuptools import setup, find_packages
4
-
5
- def read_readme():
6
- with open("README.md", "r", encoding="utf-8") as fh:
7
- return fh.read()
8
-
9
- with open(os.path.join(os.path.dirname(__file__), "requirements.txt"), "r", encoding="utf-8-sig") as f:
10
- required_packages = f.read().splitlines()
11
-
12
- def get_version():
13
- try:
14
- import pkg_resources
15
- return pkg_resources.get_distribution('SpotDown').version
16
-
17
- except Exception:
18
- version_file_path = os.path.join(os.path.dirname(__file__), "SpotDown", "upload", "version.py")
19
- with open(version_file_path, "r", encoding="utf-8") as f:
20
- version_match = re.search(r"^__version__\s*=\s*['\"]([^'\"]*)['\"]", f.read(), re.M)
21
- if version_match:
22
- return version_match.group(1)
23
- raise RuntimeError("Unable to find version string in SpotDown/upload/version.py.")
24
-
25
- setup(
26
- name="SpotDown",
27
- version=get_version(),
28
- long_description=read_readme(),
29
- long_description_content_type="text/markdown",
30
- author="Arrowar",
31
- url="https://github.com/Arrowar/SpotDown",
32
- packages=find_packages(include=["SpotDown", "SpotDown.*"]),
33
- install_requires=required_packages,
34
- python_requires='>=3.8',
35
- entry_points={
36
- "console_scripts": [
37
- "SpotDown=SpotDown.run:main",
38
- ],
39
- },
40
- include_package_data=True,
41
- keywords="streaming community",
42
- project_urls={
43
- "Bug Reports": "https://github.com/Arrowar/SpotDown/issues",
44
- "Source": "https://github.com/Arrowar/SpotDown",
45
- }
46
- )
File without changes
File without changes
File without changes