{ "info": { "author": "Ian Murphy", "author_email": "3jackdaws@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# Soundcloud-lib\nThis is a Soundcloud API library that doesn't require a client ID to function. It's basic, it can really only fetch tracks and playlists, but doesn't require the user to go through the soundcloud app approval process.\n\n![Version](https://img.shields.io/badge/version-0.4.2-blue.svg)\n![Build Status](https://jenkins.isogen.net/buildStatus/icon?job=soundcloud-lib)\n\n# Why\nI once applied for API access and was approved. I used this access for months until it was revoked for some reason and all my emails and new applications were ignored. I decided to create a library that allows me to do Soundcloud API stuff without an approved application.\n\n# Features\n* Supports asyncio\n* Does not require a client ID\n* Fetches and writes mp3 metadata (Album artist, title, artwork)\n* Can fetch entire playlists of tracks\n\n# Installation\nThis library is installable as a pip package.\n```\npip install soundcloud-lib\n```\n\n# How\nThis library uses **programming** and **algorithms** to find a client ID that can be used to access the Soundcloud API.\n\n## Saving an mp3 to a file.\nThis will write the ID3 tags for album artist, track title AND will embed the album artwork into the mp3.\n```python\nfrom sclib import SoundcloudAPI, Track, Playlist\n\napi = SoundcloudAPI() # never pass a Soundcloud client ID that did not come from this library\n\ntrack = api.resolve('https://soundcloud.com/itsmeneedle/sunday-morning')\n\nassert type(track) is Track\n\nfilename = f'./{track.artist} - {track.title}.mp3'\n\nwith open(filename, 'wb+') as fp:\n track.write_mp3_to(fp)\n\n```\n\n\n## Fetch a playlist\n\n```python\nfrom sclib import SoundcloudAPI, Track, Playlist\n\napi = SoundcloudAPI()\nplaylist = api.resolve('https://soundcloud.com/playlist_url')\n\nassert type(playlist) is Playlist\n\nfor track in playlist.tracks:\n filename = f'./{track.artist} - {track.title}.mp3'\n with open(filename, 'wb+') as fp:\n track.write_mp3_to(fp)\n\n```\n\n## Asyncio Support\n```python\nfrom sclib.asyncio import SoundcloudAPI, Track\n\napi = SoundcloudAPI()\ntrack = await api.resolve('https://soundcloud.com/user/track')\n\nassert type(track) is Track\n\nfilename = f'{track.artist} - {track.title}.mp3'\n\nwith open(filename, 'wb+') as fp:\n await track.write_mp3_to(fp)\n\n```\n\n## Fetch a playlist\n\n```python\nfrom sclib.asyncio import SoundcloudAPI, Track, Playlist\n\napi = SoundcloudAPI()\nplaylist = await api.resolve('https://soundcloud.com/playlist_url')\n\nassert type(playlist) is Playlist\n\nfor track in playlist.tracks:\n filename = f'./{track.artist} - {track.title}.mp3'\n with open(filename, 'wb+') as fp:\n await track.write_mp3_to(fp)\n\n```\n\n## Write Album Name or Track Number\n```python\nfrom sclib import SoundcloudAPI, Track, Playlist\n\nplaylist = SoundcloudAPI().resolve(\"https://soundcloud.com/user/sets/playlist_name\")\n\nfor track_number, track in enumerate(playlist):\n track.track_no = track_number\n track.album = playlist.title\n with open(f\"{track.artist} - {track.title}.mp3\", \"wb+\") as file:\n track.write_mp3_to(file)\n```\n\n\n\n\n\n# Bugs or Features\nPlease report any and all bugs using the issues tab.\n\nFeel free to request new features too.\n\n\n# Contributing\nSure, submit a pull request.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/3jackdaws/soundcloud-lib", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "soundcloud-lib", "package_url": "https://pypi.org/project/soundcloud-lib/", "platform": "", "project_url": "https://pypi.org/project/soundcloud-lib/", "project_urls": { "Homepage": "https://github.com/3jackdaws/soundcloud-lib" }, "release_url": "https://pypi.org/project/soundcloud-lib/0.4.2/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Python Soundcloud API", "version": "0.4.2" }, "last_serial": 5265381, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "da8dc66486c15527dc6fc82e5973aef6", "sha256": "b651340de44966ca5a00b3045e5e9746a547ef98ddf460fb25932e0033102f85" }, "downloads": -1, "filename": "soundcloud-lib-0.1.0.tar.gz", "has_sig": false, "md5_digest": "da8dc66486c15527dc6fc82e5973aef6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3463, "upload_time": "2018-01-11T06:14:29", "url": "https://files.pythonhosted.org/packages/63/44/47f7c5c9719be2fbe62ba6b5b8c3d2b1d7581874620d47297d52363a4d83/soundcloud-lib-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e8bd55cf6872da54dbd979a5c23009dc", "sha256": "939dc45b27121060f1984e896eeea90748451f3978c9c60d7d8f15460fb11852" }, "downloads": -1, "filename": "soundcloud-lib-0.2.0.tar.gz", "has_sig": false, "md5_digest": "e8bd55cf6872da54dbd979a5c23009dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3688, "upload_time": "2018-01-13T22:16:49", "url": "https://files.pythonhosted.org/packages/8c/7e/d91d5510698f6311236ef7b0ac5b22d9ad64dcac74c4441b6cf4f5b61071/soundcloud-lib-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1b9ba1127e9737a151b96995e47f5e96", "sha256": "e72d86aff7fa15b3d033343e195113fb53286c8d42f406f5388f0314bbeb61eb" }, "downloads": -1, "filename": "soundcloud-lib-0.2.1.tar.gz", "has_sig": false, "md5_digest": "1b9ba1127e9737a151b96995e47f5e96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4517, "upload_time": "2018-01-13T22:18:50", "url": "https://files.pythonhosted.org/packages/8a/1b/b5b88d9f0477b15c0ded0d78c9b4ada5335b8de860d76f22a1367811fd5e/soundcloud-lib-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "f8170fa0e488232f23b95dd474235ca6", "sha256": "f93218f3d75dadab3297fb56bfdb523efc001479af957afda0d4566cf854d4f0" }, "downloads": -1, "filename": "soundcloud-lib-0.2.2.tar.gz", "has_sig": false, "md5_digest": "f8170fa0e488232f23b95dd474235ca6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3694, "upload_time": "2018-01-16T08:23:14", "url": "https://files.pythonhosted.org/packages/5a/19/a4c40fab95297ebf7803176556223d4a6183c7344ea32d607b47f0727b06/soundcloud-lib-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "9704bbf35e9a71ab82c84c975a8abb1e", "sha256": "5a282255935c9ddcaeeec60d7f08b759814863e06f27a654b4bd81fc7a96ab26" }, "downloads": -1, "filename": "soundcloud-lib-0.3.0.tar.gz", "has_sig": false, "md5_digest": "9704bbf35e9a71ab82c84c975a8abb1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3895, "upload_time": "2018-03-10T02:59:46", "url": "https://files.pythonhosted.org/packages/1a/7c/7f7a649df62d3f884237d35fcbcb40f8b7e1fd247e4a06d406a4efc869ad/soundcloud-lib-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "53219eaf01ebcc3f9d83f66b58a62b05", "sha256": "c2870b71521d6318abe06f937cbba46e1d95e9fa1096349d3c18b4c28044d045" }, "downloads": -1, "filename": "soundcloud-lib-0.3.1.tar.gz", "has_sig": false, "md5_digest": "53219eaf01ebcc3f9d83f66b58a62b05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4145, "upload_time": "2018-03-18T23:27:26", "url": "https://files.pythonhosted.org/packages/56/ab/54d5b9b272c4f8adf08323d83cec72fbdd0d47e644dee29285ed41e3aff4/soundcloud-lib-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "108cb0a948fa0334dda0714cb76ec5bd", "sha256": "05071816a9dc1e34f6e82a4c492059781813d71a78462def56d3a913cd205a40" }, "downloads": -1, "filename": "soundcloud-lib-0.3.2.tar.gz", "has_sig": false, "md5_digest": "108cb0a948fa0334dda0714cb76ec5bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4147, "upload_time": "2018-03-18T23:32:10", "url": "https://files.pythonhosted.org/packages/93/68/613d61a1e4a4f0b625ca01336f5186c843d84463046e5079e4971c1dd40e/soundcloud-lib-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "da3d76b4ab938bc021f75af5d217e4ad", "sha256": "8a9b2405127274d8ea04a5450aecd250c868d008e147e04c55f49c25ca4d37ba" }, "downloads": -1, "filename": "soundcloud-lib-0.3.3.tar.gz", "has_sig": false, "md5_digest": "da3d76b4ab938bc021f75af5d217e4ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4183, "upload_time": "2018-05-16T04:06:37", "url": "https://files.pythonhosted.org/packages/9a/d7/b229c76a8ba19ad30e56453293b271d981376469270de8d04918437a92c6/soundcloud-lib-0.3.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "fbcff38bba6f4bfdcda81188073cf5a7", "sha256": "e5da7db679cf1f0298850a8113c67f1c4cc03bd70810147088ae7f3205e5d985" }, "downloads": -1, "filename": "soundcloud-lib-0.4.0.tar.gz", "has_sig": false, "md5_digest": "fbcff38bba6f4bfdcda81188073cf5a7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5692, "upload_time": "2018-11-10T20:57:16", "url": "https://files.pythonhosted.org/packages/ec/6f/177ffeefadee93f48ea81493c5cc957c94d2bd8d3a745e4ad1ce10a4c145/soundcloud-lib-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "7345b1983cc69dbe21f416dd61fe34b0", "sha256": "142a4de2bba87b194d12204f1517004bff1935bad0ff626055a7822f02642d1f" }, "downloads": -1, "filename": "soundcloud-lib-0.4.1.tar.gz", "has_sig": false, "md5_digest": "7345b1983cc69dbe21f416dd61fe34b0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5692, "upload_time": "2018-11-10T21:00:13", "url": "https://files.pythonhosted.org/packages/79/98/786be75fec066210a8d6c692e9218a5618477f176d994580879a154515b5/soundcloud-lib-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "694b2eab8001e926f08f6808ee71b283", "sha256": "210874bca37516a494ec16221604cc30e963251703f9aa01a6c3f375324e6d73" }, "downloads": -1, "filename": "soundcloud-lib-0.4.2.tar.gz", "has_sig": false, "md5_digest": "694b2eab8001e926f08f6808ee71b283", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5854, "upload_time": "2019-05-14T03:56:53", "url": "https://files.pythonhosted.org/packages/41/dc/3508bdbb792774b136c328754846581c184644ab727fac78e722c8005f11/soundcloud-lib-0.4.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "694b2eab8001e926f08f6808ee71b283", "sha256": "210874bca37516a494ec16221604cc30e963251703f9aa01a6c3f375324e6d73" }, "downloads": -1, "filename": "soundcloud-lib-0.4.2.tar.gz", "has_sig": false, "md5_digest": "694b2eab8001e926f08f6808ee71b283", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5854, "upload_time": "2019-05-14T03:56:53", "url": "https://files.pythonhosted.org/packages/41/dc/3508bdbb792774b136c328754846581c184644ab727fac78e722c8005f11/soundcloud-lib-0.4.2.tar.gz" } ] }