This application allows you to convert Spotify playlists to YouTube playlists. It's developed using Go (chi, goauth, gorilla sessions) on the backend and React (Vite, Redux, Radix UI) on the frontend.
- Go (1.16 or higher)
- Node.js (14 or higher)
- npm or yarn
- Google Developer Console account
- Spotify Developer account
-
Clone the project:
git clone https://github.com/buraksaglam089/tool-tube.git cd tool-tube
-
Install dependencies:
go mod tidy
-
Create a
.env
file and add the necessary environment variables:SPOTIFY_CLIENT_ID=your_spotify_client_id SPOTIFY_CLIENT_SECRET=your_spotify_client_secret GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret SESSION_KEY=your_session_key
-
Run the application:
make run
-
Navigate to the frontend directory:
cd client
-
Install dependencies:
npm install # or yarn
-
Start the application in development mode:
npm run dev # or yarn dev
-
Go to the Google Developer Console and create a new project.
-
Navigate to the "Credentials" tab and select "Create Credentials" > "OAuth client ID".
-
Choose "Web application" as the application type.
-
Add
http://localhost:5173
to "Authorized JavaScript origins" (Vite's default port). -
Add
http://localhost:8080/auth/google/callback
to "Authorized redirect URIs" (your Go application's callback URL). -
Add the generated Client ID and Client Secret to your
.env
file. -
In the "OAuth consent screen" tab, configure your app and add the necessary YouTube API permissions.
-
Go to the Spotify Developer Dashboard and create a new application.
-
In your application's settings, add
http://localhost:8080/auth/spotify/callback
to the "Redirect URIs" section. -
Add the Client ID and Client Secret to your
.env
file.
-
Open
http://localhost:5173
in your browser. -
Log in with your Spotify and Google accounts.
-
Select the Spotify playlist you want to convert.
-
Click the convert button and wait for your YouTube playlist to be created.
- Both the backend and frontend servers need to be running simultaneously for the application to work properly.
- Be mindful of API rate limits. Converting large playlists may take some time.
- If you encounter any issues, please open an issue on the project repository.