{"id":13941132,"url":"https://github.com/sheminusminus/apple-music-token-node","last_synced_at":"2025-07-20T04:30:44.556Z","repository":{"id":57182811,"uuid":"123686890","full_name":"sheminusminus/apple-music-token-node","owner":"sheminusminus","description":"JS generator for Apple Music API developer tokens","archived":false,"fork":false,"pushed_at":"2024-05-08T18:11:43.000Z","size":19,"stargazers_count":22,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-22T12:49:01.164Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/apple-music-token-node","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sheminusminus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-03T11:44:49.000Z","updated_at":"2023-07-01T16:56:05.000Z","dependencies_parsed_at":"2022-09-12T00:00:27.703Z","dependency_job_id":null,"html_url":"https://github.com/sheminusminus/apple-music-token-node","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/sheminusminus/apple-music-token-node","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheminusminus%2Fapple-music-token-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheminusminus%2Fapple-music-token-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheminusminus%2Fapple-music-token-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheminusminus%2Fapple-music-token-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sheminusminus","download_url":"https://codeload.github.com/sheminusminus/apple-music-token-node/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheminusminus%2Fapple-music-token-node/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266067254,"owners_count":23871324,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-08-08T02:01:11.973Z","updated_at":"2025-07-20T04:30:44.256Z","avatar_url":"https://github.com/sheminusminus.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# apple music token node\n\n[![Build Status](https://travis-ci.org/sheminusminus/apple-music-token-node.svg?branch=master)](https://travis-ci.org/sheminusminus/apple-music-token-node)\n\nuse javascript to generate your developer tokens for use with the apple music api.\n\n*adapted from: https://github.com/pelauimagineering/apple-music-token-generator/blob/master/music_token.py*\n\n## install\n\n\nnpm\n\n```\nnpm install -S apple-music-token-node\n```\n\nyarn\n```\nyarn add apple-music-token-node\n```\n\n-or-\n\nclone, download, or copy-paste this script somewhere in your node project.\n\n\n## updating from v1.x to v2.x\n\n\nif you don't want to use the async api available in v2, the only code change you need to make is to update from this:\n\n```\nconst getToken = require('apple-music-token-node');\n```\n\nto this:\n\n```\nconst { getToken } = require('apple-music-token-node');\n```\n\nand you're done!\n\nif you *would* like to use the new async api, you can require it like so:\n\n```\nconst { getTokenAsync } = require('apple-music-token-node');\n```\n\n`getTokenAsync` takes the same arguments as `getToken`, and returns a promise (and thus is usable with `async`/`await`). the promise resolves to the same object that would be returned by using `getToken`.\n\n\n## usage\n\n\nmake sure you've placed the .p8 private key file you generated somewhere accessible. also, include or require your `teamId` and `keyId` from apple.\n\nsynchronous usage:\n\n```\nconst path = require('path');\nconst { getToken } = require('apple-music-token-node');\n\nconst { teamId, keyId } = require('./path-to-your-config');\n\nconst certPath = path.resolve(__dirname, './path-to-your-p8-file');\nconst tokenData = getToken(certPath, teamId, keyId);\n\n// tokenData == { token: 'generated_token', expiresAt: timeInSeconds }\n```\n\nasynchronous usage:\n\n```\nconst path = require('path');\nconst { getTokenAsync } = require('apple-music-token-node');\n\nconst { teamId, keyId } = require('./path-to-your-config');\n\nconst certPath = path.resolve(__dirname, './path-to-your-p8-file');\n\nconst generate = async () =\u003e {\n    const tokenData = await getTokenAsync(certPath, teamId, keyId);\n    // tokenData == { token: 'generated_token', expiresAt: timeInSeconds }\n    // ...\n};\n\n// -or-\n\nconst generate = () =\u003e {\n    getTokenAsync(certPath, teamId, keyId).then((tokenData) =\u003e {\n        // tokenData == { token: 'generated_token', expiresAt: timeInSeconds }\n        // ...\n    });\n};\n\n```\n\n## cli mode\n\n\ncli mode to help generate quick tokens during development. for this, install globally:\n\nnpm\n\n```\nnpm i -g apple-music-token-node\n```\n\nyarn\n\n```\nyarn add -g apple-music-token-node\n```\n\nthen you can run:\n\n```\namtn\n```\n\nand it will prompt you for the data needed to generate your developer token.\n(prints to the console).\n\n![Data entered correctly](https://i.imgur.com/Z9yXFte.png)\n![Basic file path suggestion for incorrect entries](https://i.imgur.com/nUunmcI.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsheminusminus%2Fapple-music-token-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsheminusminus%2Fapple-music-token-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsheminusminus%2Fapple-music-token-node/lists"}