Giter Site home page Giter Site logo

marekkon5 / beatporttagger Goto Github PK

View Code? Open in Web Editor NEW
36.0 9.0 5.0 510 KB

Simple Python app to automatically update your audio tags & cover with data from Beatport using scrapping (no paid API).

Python 54.10% HTML 23.31% CSS 22.59%
beatport python audio

beatporttagger's People

Contributors

marekkon5 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

beatporttagger's Issues

Overwriting tags

Hi, is it possible to add the Overwrite tags function from Discogstagger to beatporttagger also?

100% miss rate when mp3 has no tags allready

Hi.

So, when mp3 has no tags allready like artist and title it will instantly fail.
Same mp3 when I've added those tags found and tag rest of tags just fine.

It's wird for a tagger to realy only on tags not a file name if tags aren't available.

Tagger fails on every search instance

Started occurring after beatport did a small UI change. Screenshots attached.

image
image

I imagine it might have something to do with beautifulsoup running into problems finding webpage elements with the UI changes but I haven't looked at the code in depth so I can't say for sure.

Love the app by the way.

suggestion

first I wanted to thank you for the amazing app!
helpe me a lot in organizing all my mess with genre tags.

wanted to ask if possible add that tag: album artist

Not an issue, just questions!

Hi @Marekkon5, i would like to ask you two questions.

Firstly, i wonder if there is a chance or if it's possible to add a feature like drag and dropping tracks to the tagger!

Secondly, i wonder if there is any way (code changing) to exclude specific words when beatport tagger is searching for the releases.
For example, most of the DJ pools are using the words (clean) or (dirty) to specify if the version of a track is explicit or not.
So let's say that the track is 'Never Gonna Forget (Clean)', is it possible to manipulate the code to consider the title as 'Never Gonna Forget'.*

*PS. I understand that i could do that through the percentage of Strictness but i want to be sure that the tags will be -most of the times- the correct ones.

Compiling the app with python-levenshtein.

Hi @Marekkon5 i saw that the new .exe is using the python-levenshtein, how can we build the app with python-levenshtein?

I'm asking this because i see this warning message when i start the app

C:\Users\rosGR\AppData\Local\Temp_MEI155882\fuzzywuzzy\fuzz.py:11: UserWarning: Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning

I don't know if that matters though!

Thank you!

Beatport

Hi! I have error when install webview, how i can fix? And on windows vds (2016) button browser don't open directories

Tagger window

Adjust the tagger window, the start button is not visible at the bottom of the screen
q

fine tuning

Hi! I happy will tester for you. In beatporttagger check search mode. Look for instance track : Alex Morelli - Crimson Idol. Make as file and check tagger. Version 1.1.7 not found , but version: beatporttagger.win10-vm-Levenshtein - it's ok! This is very important to improve the algorithm, you need to look at the reason

Done list is not cleared

Hi.

after first tagging done list isn't cleared, so when next folder is selected tagging is done
list contain FAILED / NOT FOUND from first and second scan.

so to clear list app needs to be restarted

win 10

AIFF support

Would love to see AIFF support for the tagger. FLAC is good, however certain dj software support for FLAC tags is worse than AIFF.

Unhandled Exception...

Hi, I'm getting this error when running on Python 3.6, any help to fix the problem would be much appreciated!

Unhandled Exception: Python.Runtime.PythonException: Exception : The callee (server [not server application]) is not available and disappeared; all connections are invalid. The call may have executed. (Exception from HRESULT: 0x80010007 (RPC_E_SERVER_DIED))
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Toolkit.Win32.UI.Controls.Interop.WinRT.WebViewControlProcess.d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Toolkit.Forms.UI.Controls.WebViewControlProcessExtensions.CreateWebViewControlHost(WebViewControlProcess process, IntPtr hostWindowHandle, Rectangle bounds)
at Microsoft.Toolkit.Forms.UI.Controls.WebView.Initialize()
at Microsoft.Toolkit.Forms.UI.Controls.WebView.System.ComponentModel.ISupportInitialize.EndInit()
at Python.Runtime.Dispatcher.Dispatch(ArrayList args)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

Compiling ends with an error! SOLVED

Hi @Marekkon5

I tried to compile the beatport tagger following your instructions but am facing an error.

PS C:\Users\rosGR\Desktop\beatporttagger-1.1.4> pip install --user -r requirements.txt
Requirement already satisfied: requests==2.22.0 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from -r requirements.txt (line 1)) (2.22.0)
Requirement already satisfied: fuzzywuzzy==0.17.0 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from -r requirements.txt (line 2)) (0.17.0)
Requirement already satisfied: mutagen==1.42.0 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from -r requirements.txt (line 3)) (1.42.0)
Requirement already satisfied: pywebview==3.3.3 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from -r requirements.txt (line 4)) (3.3.3)
Requirement already satisfied: beautifulsoup4==4.9.3 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from -r requirements.txt (line 5)) (4.9.3)
Requirement already satisfied: PyQt5==5.15.1 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from -r requirements.txt (line 6)) (5.15.1)
Requirement already satisfied: lxml==4.6.1 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from -r requirements.txt (line 7)) (4.6.1)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from requests==2.22.0->-r requirements.txt (line 1)) (1.25.11)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from requests==2.22.0->-r requirements.txt (line 1)) (2020.11.8)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from requests==2.22.0->-r requirements.txt (line 1)) (3.0.4)
Requirement already satisfied: idna<2.9,>=2.5 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from requests==2.22.0->-r requirements.txt (line 1)) (2.8)
Requirement already satisfied: pythonnet; sys_platform == "win32" in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from pywebview==3.3.3->-r requirements.txt (line 4)) (2.5.1)
Requirement already satisfied: soupsieve>1.2; python_version >= "3.0" in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from beautifulsoup4==4.9.3->-r requirements.txt (line 5)) (2.0.1)
Requirement already satisfied: PyQt5-sip<13,>=12.8 in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from PyQt5==5.15.1->-r requirements.txt (line 6)) (12.8.1)
Requirement already satisfied: pycparser in c:\users\rosgr\appdata\roaming\python\python38\site-packages (from pythonnet; sys_platform == "win32"->pywebview==3.3.3->-r requirements.txt (line 4)) (2.20)
PS C:\Users\rosGR\Desktop\beatporttagger-1.1.4> pip install pyinstaller
Requirement already satisfied: pyinstaller in c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages (4.0)
Requirement already satisfied: pyinstaller-hooks-contrib>=2020.6 in c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages (from pyinstaller) (2020.10)
Requirement already satisfied: pywin32-ctypes>=0.2.0; sys_platform == "win32" in c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages (from pyinstaller) (0.2.0)
Requirement already satisfied: pefile>=2017.8.1; sys_platform == "win32" in c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages (from pyinstaller) (2019.4.18)
Requirement already satisfied: altgraph in c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages (from pyinstaller) (0.17)
Requirement already satisfied: setuptools in c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages (from pyinstaller) (49.2.1)
Requirement already satisfied: future in c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages (from pefile>=2017.8.1; sys_platform == "win32"->pyinstaller) (0.18.2)
PS C:\Users\rosGR\Desktop\beatporttagger-1.1.4> pyinstaller --onefile beatporttagger.spec
69 INFO: PyInstaller: 4.0
69 INFO: Python: 3.8.6
69 INFO: Platform: Windows-10-10.0.19041-SP0
69 INFO: UPX is not available.
69 INFO: Extending PYTHONPATH with paths
['C:\Users\rosGR\Desktop\beatporttagger-1.1.4',
'C:\home\marekkon5\Projects\beatportgenre']
84 INFO: checking Analysis
84 INFO: Building Analysis because Analysis-00.toc is non existent
84 INFO: Initializing module dependency graph...
84 INFO: Caching module graph hooks...
100 INFO: Analyzing base_library.zip ...
2238 INFO: Processing pre-find module path hook distutils from 'c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\hooks\pre_find_module_path\hook-distutils.py'.
2238 INFO: distutils: retargeting to non-venv dir 'c:\users\rosgr\appdata\local\programs\python\python38\lib'
4258 INFO: Caching module dependency graph...
4361 INFO: running Analysis Analysis-00.toc
4361 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
required by c:\users\rosgr\appdata\local\programs\python\python38\python.exe
4494 INFO: Analyzing beatporttagger.py
C:\Users\rosGR\AppData\Roaming\Python\Python38\site-packages\webview\platforms\winforms.py:160: SyntaxWarning: "is" with a literal. Did you mean "=="?
self.js_result = None if result is None or result is 'null' else json.loads(result)
4922 INFO: Processing pre-safe import module hook urllib3.packages.six.moves from 'c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\hooks\pre_safe_import_module\hook-urllib3.packages.six.moves.py'.
6655 INFO: Processing module hooks...
6655 INFO: Loading module hook 'hook-certifi.py' from 'c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
6657 INFO: Loading module hook 'hook-clr.py' from 'c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...
Traceback (most recent call last):
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\runpy.py", line 194, in run_module_as_main
return run_code(code, main_globals, None,
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Users\rosGR\AppData\Local\Programs\Python\Python38\Scripts\pyinstaller.exe_main
.py", line 7, in
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller_main
.py", line 114, in run
run_build(pyi_config, spec_file, **vars(args))
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller_main
.py", line 65, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\building\build_main.py", line 720, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\building\build_main.py", line 667, in build
exec(code, spec_namespace)
File "beatporttagger.spec", line 6, in
a = Analysis(['beatporttagger.py'],
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\building\build_main.py", line 242, in init
self.postinit()
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\building\datastruct.py", line 160, in postinit
self.assemble()
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\building\build_main.py", line 419, in assemble
self.graph.process_post_graph_hooks()
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\depend\analysis.py", line 365, in process_post_graph_hooks
module_hook.post_graph()
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\depend\imphook.py", line 440, in post_graph
self._load_hook_module()
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\depend\imphook.py", line 406, in _load_hook_module
self._hook_module = importlib_load_source(
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\compat.py", line 588, in importlib_load_source
return mod_loader.load_module()
File "", line 462, in _check_name_wrapper
File "", line 962, in load_module
File "", line 787, in load_module
File "", line 265, in _load_module_shim
File "", line 702, in _load
File "", line 671, in _load_unlocked
File "", line 783, in exec_module
File "", line 219, in _call_with_frames_removed
File "c:\users\rosgr\appdata\local\programs\python\python38\lib\site-packages_pyinstaller_hooks_contrib\hooks\stdhooks\hook-clr.py", line 40, in
raise Exception(pyruntime + ' not found')
Exception: Python.Runtime not found

Unistall Pythonnet and then install it again to fix this issue!

Awesome App! Here a couple of suggestions...

Awesome app! Very useful for correctly getting the genres of your collection....

Here I post a couple of suggestions, one way more complicated than the other....

  1. Would it be possible to get the REMIXER and MIX tags from Beatport? (I'm a Traktor user)

  2. Could it be possible to read iTunes/Apple Music collection.xml and select certain playlists, instead of having to select the whole iTunes Music folder?

Fatal error detected

Hi, i was able successfully compile the app (v1.1.7) but whenever i'm trying to run the app i get the message below.
The UAC is already enabled on my Computer!

Screenshot 2021-01-15 164306

Art cover size

1.1.8 - cover art 1400 size only, i set 500 but get 1400 always.
And
I noticed that tracks with the sticker on the covers of "Exclusive" "Hype" are not found. It may be a match but check if it affects the search. For instance tracks from these releases not found an have "exclusive" mark
I send several links of tracks "exclusive" and "hype" for check.
Here links not found tracks (in releases):
https://www.beatport.com/release/from-outer-space/3254592
https://www.beatport.com/release/the-rituals/3232540
https://www.beatport.com/release/zion-ep/3257297
https://www.beatport.com/release/crisis/3234220
https://www.beatport.com/release/the-sound-of-2021-sampler-1/3271131
https://www.beatport.com/release/i-dont-blame-you/3206091

here several tracks with mark "exclusive" and "hype"
https://www26.zippyshare.com/v/ENdiOKxD/file.html
I know that beatport broke the api, just check

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.