BackTube is a streaming app for music lovers who can create and follow playlists of their favorite songs from Youtube or Bandcamp.
There are 4 different repositories:
- UI
- Backend API (this repository)
- Stream API
- Youtube Music Search API
Use the package manager npm to install the UI.
npm install
npm start
Example of API call using cURL
curl \
-H 'Content-Type: application/json' \
-H 'accessToken': <YOUR ACCESS TOKEN>
-X POST \
-d '{"searchString": "nirvana"}' \
http://localhost:5000/api/playlist/search/
- [POST] /public/playlists/recent: Retrieve most recent playlists updated on BackTube (No Authentication needed)
- [POST] /auth/register: Register a user (No Authentication needed)
- [POST] /auth/login: Login (No Authentication needed)
- [POST] /auth/confirm: Confirm user registration (No Authentication needed)
- [POST] /auth/sendConfirmCode: Send confirm registration code to user provided email (No Authentication needed)
- [POST] /auth/forgotPassword: Send forgot password email to user provided email (No Authentication needed)
- [POST] /auth/resetPassword: Reset user's password using verification code in email (No Authentication needed)
- [POST] /auth/refresh: Refresh user session (Authentication needed)
- [PUT] /auth/user: Change username (Authentication needed) (Deprecated soon)
- [PUT] /api/profile/: Update user profile (Authentication needed)
- [GET] /api/profile/: Get user profile (Authentication needed)
- [GET] /api/profile//playlists: Get user profile with playlists (Authentication needed)
- [GET] /api/profile//playlistsNoTracks: Get user profile with playlists Id and Title (Authentication needed)
- [GET] /api/playlist: Retrieve all playlists (max = 100) (Authentication needed)
- [POST] /api/playlist: Create a playlist (Authentication needed)
- [PUT] /api/playlist: Update a playlist (Authentication needed)
- [DELETE] /api/playlist: Delete a playlist (Authentication needed)
- [GET] /api/playlist/: Retrieve a playlist and its tracks (Authentication needed)
- [PUT] /api/playlist//addFollower: Follow playlist (Authentication needed)
- [PUT] /api/playlist//removeFollower: Unfollow playlist (Authentication needed)
- [POST] /api/playlist/search: Fulltext search for playlists (indexed on playlist title, track title/artist/album) (Authentication needed)
- [GET] /api/track/: Retrieve a specific track (Authentication needed)
- [GET] /api/track: Retrieve all tracks (max = 100) (Authentication needed)
- [GET] /api/track//playlists: Retrieve all playlists having this track (Authentication needed)
Currently deployed on Heroku https://api-backtube.herokuapp.com
Please open an issue prior to submitting a pull request, so that we can discuss whether it makes sense to be implemented or not. Feature ideas or bug reports are more than welcome!