{"id":18652868,"url":"https://github.com/fokka-engineering/pyopentidal","last_synced_at":"2026-04-07T08:32:33.718Z","repository":{"id":103250731,"uuid":"358029160","full_name":"Fokka-Engineering/pyopenTIDAL","owner":"Fokka-Engineering","description":"Lightweight libopenTIDAL python wrapper","archived":false,"fork":false,"pushed_at":"2021-05-26T07:13:24.000Z","size":94,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-02T07:00:09.220Z","etag":null,"topics":["api-wrapper","curl","python","tidal","tidal-api","tidalapi","wrapper"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fokka-Engineering.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-14T20:06:58.000Z","updated_at":"2024-09-08T21:00:53.000Z","dependencies_parsed_at":"2023-06-28T17:45:13.310Z","dependency_job_id":null,"html_url":"https://github.com/Fokka-Engineering/pyopenTIDAL","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"ec4057030b9bd36253f6e94de7666b503b586d41"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Fokka-Engineering/pyopenTIDAL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fokka-Engineering%2FpyopenTIDAL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fokka-Engineering%2FpyopenTIDAL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fokka-Engineering%2FpyopenTIDAL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fokka-Engineering%2FpyopenTIDAL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fokka-Engineering","download_url":"https://codeload.github.com/Fokka-Engineering/pyopenTIDAL/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fokka-Engineering%2FpyopenTIDAL/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31506562,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-wrapper","curl","python","tidal","tidal-api","tidalapi","wrapper"],"created_at":"2024-11-07T07:08:58.192Z","updated_at":"2026-04-07T08:32:33.692Z","avatar_url":"https://github.com/Fokka-Engineering.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  A libopenTIDAL python wrapper.\n\u003c/p\u003e\n\nMIT License\n\n\u003e  Copyright (c) 2021 Hugo Melder\n\u003e\n\u003e  Permission is hereby granted, free of charge, to any person obtaining a copy\n\u003e  of this software and associated documentation files (the \"Software\"), to deal\n\u003e  in the Software without restriction, including without limitation the rights\n\u003e  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\u003e  copies of the Software, and to permit persons to whom the Software is\n\u003e  furnished to do so, subject to the following conditions:\n\u003e\n\u003e  The above copyright notice and this permission notice shall be included in\n\u003e  all copies or substantial portions of the Software.\n\u003e\n\u003e  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\u003e  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\u003e  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\u003e  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\u003e  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\u003e  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n\u003e  THE SOFTWARE.\n\n### Introduction\nlibopenTIDAL is a TIDAL API client library written in ANSI C. It's lightweight, fast and easy to use.\n\nAfter reverse-engineering the TIDAL API and documenting all endpoints, I had the idea to write a portable C library. The goal was to integrate the OAuth2 Device-Flow, auto-refreshing sessions and all endpoints. \n\nA python module using openTIDAL is also available and easy to install (currently in development).\n\n##### What is implemented?\n* OAuth Log-In/Logout and Automatic Session Renewal\n* Demo Session\n* Playlist Creation, Deletion and Manipulation\n* Mixes (also known as Radio)\n* Favourites Management\n* Recently Played, Your History, Because You Listened To {album} and other user-based content recommendations\n* Pagination (Limit \u0026 Offset)\n* Order \u0026 Sort Filters\n* Content HTTP Streams (Audio \u0026 Video)\n* Easy and Extensive Error Handling\n\n### Wiki\nWork in progress.\n\n### Thread Safety\nopenTIDAL is thread safe.\nYou need to create a http-handle for a new thread.\nSession refresh checks and requests are only available on the main thread.\n\n### Building\n```\n$ git submodule init \u0026\u0026 git submodule update\n```\n```\n$ pip3 install ./\n```\n\n##### Dependencies\nopenTIDAL uses libcURL for HTTP Requests. In modern systems curl is preinstalled (macOS, Windows 10 (1803 or later) and most Linux distributions).\n\nYou'll need the development package on some Linux distributions. The libcurl header files are bundled with the xcode command line tools on macOS.\n\nOn Debian \u0026 other APT-based Distros:\n```\n$ apt install libcurl-dev\n```\n\nOn CentOS:\n```\n$ dnf install libcurl-devel\n```\n\npyopenTIDAL uses the cffi module. This module requires a working C compiler if you build pyopenTIDAL from source.\n\n## Disclaimer\n\nI deeply discourage you from building and distributing copyright-infringing apps. Create something that adds up to TIDAL's Service.\n\n## Credits\n* cURL (Daniel Stenberg \u0026 Contributors)\n* cJSON (Dave Gamble \u0026 Contributors)\n* Base64 (The Apache Group.)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffokka-engineering%2Fpyopentidal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffokka-engineering%2Fpyopentidal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffokka-engineering%2Fpyopentidal/lists"}