An OrpheusDL Tidal module

Overview

OrpheusDL - Tidal

A Tidal module for the OrpheusDL modular archival music program

Report Bug · Request Feature

Table of content

About OrpheusDL - Tidal

OrpheusDL - Tidal is a module written in Python which allows archiving from Tidal for the modular music archival program.

Getting Started

Follow these steps to get a local copy of Orpheus up and running:

Prerequisites

Installation

  1. Clone the repo inside the folder OrpheusDL
    git clone https://github.com/Dniel97/orpheusdl-tidal.git
  2. Execute:
    python orpheus.py search tidal track darkside
  3. Now the config/settings.json file should be updated with the Tidal settings

Usage

Just call orpheus.py with any link you want to archive:

python orpheus.py https://tidal.com/browse/album/92265334

Configuration

You can customize every module from Orpheus individually and also set general/global settings which are active in every loaded module. You'll find the configuration file here: config/settings.json

Global

"global": {
    "general": {
        "album_search_return_only_albums": false,
        "download_path": "./downloads/",
        "download_quality": "lossless"
    },

download_quality: Choose one of the following settings:

  • "hifi": FLAC with MQA up to 48/24
  • "lossless": FLAC with 44.1/16
  • "high": AAC 320 kbit/s
  • "low": AAC 96 kbit/s

Tidal

 "tidal": {
    "client_token": "",
    "client_secret": "",
}

client_token: Enter a valid TV client token

client_secret: Enter a valid TV client secret for the client_token

Contact

Yarrm80s (pronounced 'Yeargh mateys!') - @yarrm80s

Dniel97 - @Dniel97

Project Link: OrpheusDL Tidal Public GitHub Repository

Acknowledgements

Comments
  • Quality Cd quality or not

    Quality Cd quality or not

    Describe the bug This tool isnt downloading lossless music. Its just downloading 320 kbps mp3 quality and encode to m4a

    To Reproduce python3 orpheus.py url Quality settings : lossless ---- 320kbps Screenshot_20220911-112958_Termux Quality Settings : hifi ---- 321kbps Screenshot_20220911-113102_Termux

    Expected behavior A lossless CD-Quality rip.

    Spectrogram of Same track:

    From qobuz:

    Qobuz

    From Tidal using orpheus.py

    Tidal

    Screenshots

    Desktop (please complete the following information):

    • OS: [e.g. Windows, Unix, Android]
    • Python version [e.g. 3.6.9, 3.9.3]

    Additional context Add any other context about the problem here.

    invalid 
    opened by tathastu871 17
  • Album downloads as stereo FLAC instead of Atmos

    Album downloads as stereo FLAC instead of Atmos

    Describe the bug When attempting to download https://listen.tidal.com/album/232719542, a stereo FLAC version is downloaded.

    To Reproduce Steps to reproduce the behavior:

    1. Use command 'python orpheus.py https://listen.tidal.com/album/232719542' with this config: https://gist.github.com/mrmatteastwood/5b8eb19b01241397d566d522fad14764
    2. Observe downloaded folder name and contents

    Expected behavior The Atmos version of the album shold be downloaded and stored as .m4a files.

    Desktop (please complete the following information):

    • OS: Linux Mint 21
    • Python version 3.10.6

    Additional context My settings.json is set to put the suffix "[Dolby Atmos]" into the folder name for albums that are encoded as such. That suffix is missing from the folder title created for this album, suggesting it might not be properly recognized. Haven't experienced this with any other Dolby Atmos encoded albums.

    bug 
    opened by mrmatteastwood 7
  • Weird assertion error after attempting to create a Mobile session

    Weird assertion error after attempting to create a Mobile session

    When I try to start a new "rip", it asks me if I'd like to create a new mobile session as I have not created one already. It asks for my username and password which I put in correctly. Once the process starts, it gets interrupted very quickly due to an assertion error. I've tried reinstalling Orpheus, reinstalling the modules, installing the modules manually by cloning the repos, and nothing seems to work.

    I'm not sure what this means as I have little understanding of python. Anyone know how to fix this. My endgoal is to be able to obtain 360 audio and I'm not sure what is causing this issue.

    image


    / __ \ | | | __ | |
    | | | |_ __ _ __ | |__ ___ _ _ | | | | |
    | | | | '
    | '
    | '_ \ / _ \ | | / | | | | |
    | |
    | | | | |) | | | | __/ || __ \ || | |____ _/|| | ./|| ||_|_,|//|___| | |
    |
    |

    "enable_mobile" is enabled but no MOBILE session was found. Do you want to create a MOBILE session (used for AC-4/360RA) [Y/n]? Y TIDAL: Creating a Mobile session TIDAL: Enter your Tidal username and password: Username: ______@gmail.com Password: Traceback (most recent call last): File "/Users/zaneburko/orpheusdl/orpheus.py", line 223, in main() File "/Users/zaneburko/orpheusdl/orpheus.py", line 218, in main orpheus_core_download(orpheus, media_to_download, tpm, sdm, path) File "/Users/zaneburko/orpheusdl/orpheus/core.py", line 360, in orpheus_core_download music = orpheus_session.load_module(mainmodule) File "/Users/zaneburko/orpheusdl/orpheus/core.py", line 205, in load_module loaded_module = class(module_controller) File "/Users/zaneburko/orpheusdl/modules/tidal/interface.py", line 111, in init sessions[session_type].auth(username, password) File "/Users/zaneburko/orpheusdl/modules/tidal/tidal_api.py", line 454, in auth assert (r.status_code == 200) AssertionError

    • OS: Monterey
    • Python version 3.10.6
    bug no-issue-activity 
    opened by zaneburko 7
  • line 67

    line 67

    File "orpheus.py", line 67 raise Exception(f'Unknown setting "{modulesetting}" for module "{setting}"') ^ SyntaxError: invalid syntax

    question 
    opened by gustavotate 7
  • Orpheus stops at username, does not ask for password at mobile session, therefore no login possible

    Orpheus stops at username, does not ask for password at mobile session, therefore no login possible

    Describe the bug Downloading stereo with non mobile session works very well, but when attempting to log in as mobile session, orpheus stops after username:

    To Reproduce Steps to reproduce the behavior:

    $ python orpheus.py search tidal track beatles the long and wi nding road DEBUG:root:Orpheus: Modules detected: example, tidal DEBUG:root:Orpheus: example added as a module DEBUG:root:Orpheus: tidal added as a module


    / __ \ | | | __ | | | | | |_ __ _ __ | |__ ___ _ _ | | | | | | | | | '| ' | '_ \ / _ \ | | / | | | | | | || | | | |) | | | | __/ || __ \ || | |____ _/|| | ./|| ||_|_,|//|___| | | ||

    "enable_mobile" is enabled but no MOBILE session was found. Do you want to create a MOBILE session (used for AC-4/360RA) [Y/n]? Y DEBUG:root:TIDAL: TV session found, loading DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): api.tidal.com:443 DEBUG:urllib3.connectionpool:https://api.tidal.com:443 "GET /v1/sessions HTTP/1.1" 200 271 DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): api.tidal.com:443 DEBUG:urllib3.connectionpool:https://api.tidal.com:443 "GET /v1/users/182938909/subscription HTTP/1.1" 200 290 DEBUG:root:TIDAL: No MOBILE_DEFAULT session found, creating new one TIDAL: Creating a Mobile session TIDAL: Enter your Tidal username and password: Username: [email protected]

    -> thats it, no question about password....

    Expected behavior There should be a password-field, then login, then download or search

    Desktop (please complete the following information):

    • OS: Windows 11
    • Python version [e.g. 3.6.9, 3.9.3]
    bug 
    opened by MarkHeat 5
  • Downloading formats getting mixed up and not rightly stated

    Downloading formats getting mixed up and not rightly stated

    I was trying to download a Dolby Atmos track and it got downloaded as a FLAC file, I tried downloading a FLAC file and it got downloaded as an .m4a file. And when I was trying to download an MQA track, even though it did say 24bit 96khz on the cmd while downloading. On the file properties, it showed it as 24bit 48khz. And all the right settings are set to true.

    question no-issue-activity 
    opened by SI0209 4
  • Formatting feat artist name missing

    Formatting feat artist name missing

    Sorry, I'm not good at english.

    Hello.

    I install orpheusdl-tidal and trying to download some track. I config in settings.json adding {artist} but i can't get featuring artist name. Ex. Happy - Adam feat. Eve

    In this case tidal using (,) instead feat and yeah i can't get any featuring artist name when i using {artist}.

    bug 
    opened by Chalityst 4
  • If both Dolby Atmos and 360RA are available for same track, which is downloaded?

    If both Dolby Atmos and 360RA are available for same track, which is downloaded?

    Which one of these take preference?

    Also a side question, is every track available in AC-4 also guaranteed to be available in EAC-3? (In other words, no AC-4 only Atmos tracks on the platform?)

    opened by hell001 3
  • Cannot play 360RA track in VLC

    Cannot play 360RA track in VLC

    Hey devs, I just started using orpheusdl with tidal module to download a 360RA track but could not play it on my desktop as VLC crashes instantly. EAC-3 tracks are playing prefect fine though.


    tidal module commit hash: dff7758cabe8278130ee425eb0ee386418ca2587 orpheusdl commit hash: fa5963157ac97d89cd7691584c65dbfbdb3fe1bf

    off-topic 
    opened by omdev420 3
  • explanation about the other config options

    explanation about the other config options

    Tried to configure the "covers" and "advanced" subcategory in the settings.json file. The problem is that I don't have any template or explanation, what makes it just a way too big guess and try game. Maybe you could add some informations about the possible config options in the README file, if modifying these settings is possible.

    Greetings, ViPiMP

    documentation 
    opened by ViPiMP 3
  • Ayreon - Universal Migrator downloads as stereo instead of Atmos

    Ayreon - Universal Migrator downloads as stereo instead of Atmos

    Describe the bug This is very similar to bug #25. When attempting to download https://listen.tidal.com/album/242428593, a stereo FLAC version is downloaded and saved as .m4a files.

    To Reproduce Steps to reproduce the behavior:

    1. Use command 'python orpheus.py https://listen.tidal.com/album/242428593' with this config: https://gist.github.com/mrmatteastwood/1c6d40bf7d603cb8ab7bdfe8a5b4b294
    2. Observe downloaded folder name and contents

    Expected behavior The Atmos version of the album should be downloaded and stored as .m4a files.

    Desktop (please complete the following information):

    • OS: Linux Mint 21
    • Python version 3.10.6

    Additional context My settings.json is set to put the suffix "[Dolby Atmos]" into the folder name for albums that are encoded as such. That suffix is missing from the folder title created for this album, suggesting it might not be properly recognized. Haven't experienced this with any other Dolby Atmos encoded albums. All packages from requirements.txt for both orpheusdl and the TIDAL module are up to date. Deleted loginstorage.bin and re-connected. Same result.

    Terminal output

    $ python orpheus.py https://listen.tidal.com/album/242428593
    
       ____             _                    _____  _      
      / __ \           | |                  |  __ \| |     
     | |  | |_ __ _ __ | |__   ___ _   _ ___| |  | | |     
     | |  | | '__| '_ \| '_ \ / _ \ | | / __| |  | | |     
     | |__| | |  | |_) | | | |  __/ |_| \__ \ |__| | |____ 
      \____/|_|  | .__/|_| |_|\___|\__,_|___/_____/|______|
                 | |                                       
                 |_|                                       
                 
    
     "enable_mobile" is enabled but no MOBILE session was found. Do you want to create a MOBILE session (used for AC-4/360RA) [Y/n]? y
     TIDAL: Creating a TV session
    Opening https://link.tidal.com/RAFIQ, log in or sign up to TIDAL.
    Checking link      
    Successfully linked!
     TIDAL: Creating a Mobile session
     TIDAL: Enter your Tidal username and password:
     Username: [redacted]
     Password: 
     Successfully logged in, using MOBILE_DEFAULT token!
     Successfully logged in, using MOBILE_ATMOS token!
    === Downloading album Universal Migrator, Pt. I & II (2022 Remixed & Remastered) (242428593) ===
            Artist: Ayreon (3658990)
            Year: 2022
            Duration: 02h:15m:53s
            Number of tracks: 20
            Service: TIDAL
            Downloading album cover
    
            Track 1/20
            === Downloading track The Dream Sequencer (2022 Remixed & Remastered) (242428596) ===
                    Artists: Ayreon (3658990)
                    Release year: 2022
                    Duration: 05m:09s
                    Codec: FLAC, bitrate: 732kbps, bit depth: 16bit, sample rate: 44.1kHz
    
                    Downloading track file
                    100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 79/79 [00:02<00:00, 31.30it/s]
                    FFmpeg is not installed or working! Using fallback, may have errors
                    Downloading artwork
                    Retrieving credits
                    Tagging file
            === Track 242428596 downloaded ===
    
    bug 
    opened by mrmatteastwood 2
  • How to search tidal for All Dolby Atmos or All 360 (as could be done in redsea)?

    How to search tidal for All Dolby Atmos or All 360 (as could be done in redsea)?

    Maybe this is a feature request but I'd like to be able to search tidal for all albums in Dolby Atmos, or 360.

    I don't see a way to do that currently in OrpheusDL.

    Feel free to move this issue to orpheusdl if that is more appropriate (adding "quality" as a search term).

    feature-request 
    opened by dts350z 9
Owner
Daniel
Daniel
LAPS module for CrackMapExec

Crackmapexec-LAPS LAPS module for CrackMapExec Make sure to point to the DC Specify the full domain name Be careful the rid 500 might not be "Administ

null 28 Oct 5, 2022
A Python module for decorators, wrappers and monkey patching.

wrapt The aim of the wrapt module is to provide a transparent object proxy for Python, which can be used as the basis for the construction of function

Graham Dumpleton 1.8k Jan 6, 2023
Python screenshot library, replacement for the Pillow ImageGrab module on Linux.

tldr: Use Pillow The pyscreenshot module is obsolete in most cases. It was created because PIL ImageGrab module worked on Windows only, but now Linux

null 455 Dec 24, 2022
An ultra fast cross-platform multiple screenshots module in pure Python using ctypes.

Python MSS from mss import mss # The simplest use, save a screen shot of the 1st monitor with mss() as sct: sct.shot() An ultra fast cross-platfo

Mickaël Schoentgen 799 Dec 30, 2022
One Ansible Module for using LINE notify API to send notification. It can be required in the collection list.

Ansible Collection - hazel_shen.line_notify Documentation for the collection. ansible-galaxy collection install hazel_shen.line_notify --ignore-certs

Hazel Shen 4 Jul 19, 2021
Is a polybar module that will show you your progress in Hack The Box

HTB-Status for Polybar Is a polybar module that will show you your progress in Hack The Box indicating your current rank, global rank, points and resp

bitc0de 8 Jan 14, 2022
This module is for finding the execution time of a whole python program

exetime 3.8 This module is for finding the execution time of a whole program How to install $ pip install exetime Contents: General Information Instru

Saikat Das 4 Oct 18, 2021
Python module to work with Magneto Database directly without using broken Magento 2 core

Python module to work with Magneto Database directly without using broken Magento 2 core

Egor Shitikov 13 Nov 10, 2022
This module extends twarc to allow you to print out tweets as text for easy testing on the command line

twarc-text This module extends twarc to allow you to print out tweets as text for easy testing on the command line. Maybe it's useful for spot checkin

Documenting the Now 2 Oct 12, 2021
A module comment generator for python

Module Comment Generator The comment style is as a tribute to the comment from the RA . The comment generator can parse the ast tree from the python s

飘尘 1 Oct 21, 2021
This python module allows to extract data from the RAW-file-format produces by devices from Thermo Fisher Scientific.

fisher_py This Python module allows access to Thermo Orbitrap raw mass spectrometer files. Using this library makes it possible to automate the analys

null 8 Oct 14, 2022
Module for working with the site dnevnik.ru with python

dnevnikru Module for working with the site dnevnik.ru with python Dnevnik object accepts login and password from the dnevnik.ru account Methods: homew

Aleksandr 21 Nov 21, 2022
Python module for creating the circuit simulation definitions for Elmer FEM

elmer_circuitbuilder Python module for creating the circuit simulation definitions for Elmer FEM. The circuit definitions enable easy setup of coils (

null 5 Oct 3, 2022
A python mathematics module

A python mathematics module

Fayas Noushad 4 Nov 28, 2021
A lightweight Python module to interact with the Mitre Att&ck Enterprise dataset.

enterpriseattack - Mitre's Enterprise Att&ck A lightweight Python module to interact with the Mitre Att&ck Enterprise dataset. Built to be used in pro

xakepnz 7 Jan 1, 2023
pyshell is a Linux subprocess module

pyshell A Linux subprocess module, An easier way to interact with the Linux shell pyshell should be cross platform but has only been tested with linux

null 4 Mar 2, 2022
A country information finder module

A country information finder module

Fayas Noushad 3 Nov 28, 2021
A corona information module

A corona information module

Fayas Noushad 3 Nov 28, 2021
A random cat fact python module

A random cat fact python module

Fayas Noushad 4 Nov 28, 2021