SpotPlay2YouPlay - Converts new additions to a Spotify playlist to a matching Youtube playlist

Overview

SpotPlay2YouPlay

Converts new additions to a Spotify playlist to a matching Youtube playlist, can also be configured to converting whole playlists with the refresh function. Requires 3 youtube/google credentials to operate at full capacity, and needs 1 spotify api

HOW TO USE DETAILED IN STEPS IN THE DIRECTIONS.TXT FILE

I built my first messy but functional Python script that converts a Spotify playlist to a YouTube playlist, while storing the song IDs locally to avoid adding the same songs twice. The default is that every time the program is run, the YouTube playlist is cleared and only the new songs are added, but this can be controlled by calling a function called refresh. You can imagine the uses, and any advice would be greatly appreciated!

As for the workings, here's the breakdown in steps:

  1. It asks the user for a Spotify playlist
  2. The user inputs the "share this playlist" link
  3. The program will fetch all the songs in the playlist and simplify the info to their unique ID, artist names and song name. (The Spotify song object is LOADED with useless info for this application)
  4. The program creates a file called Depot.txt (if it's not already present) and stores in every new unique song ID, checking the Depot file every time to ensure the ID isn't already there to avoid repeated Spotify songs. (The song ID is still unique even if it's found in different playlists)
  5. The known songs get ignored, and the new songs get added to a list variable called 'queue'. (To avoid songs from getting ignored, you can uncomment the refresh() function in the main code page - refresh() just deletes the Depot.txt file every time it starts)
  6. The YouTubeAPI kicks in its first function and starts deleting all the songs on the YouTube playlist using the API functions list and delete, doing this by video ID to save usage points (so you don't DL them twice) but this function can also be removed by just commenting out any instance of the delete_ all_in_playlist() function on the main page and the structural code around them.
  7. With a fresh and empty YouTube playlist, the previously mentioned queue variable filled with the new songs will use the YouTubeAPI to search the first instance of that song using the song title and artists. It will then add that song to the YouTube playlist immediately.
  8. YoutubeAPI's have a ridiculously small daily use limit, which is why it switches between 3 pages of credentials. It has a total capacity of around 200 delete and add operations. When an API reaches its limit, it will catch the server error and swap to another API after removing every song that didn't download from Depot (so that it's considered a new song again) To remove these songs it will use the Song_Removal() function.
  9. If the total capacity of all three of the YouTubeAPI is met, it will remove the unadded songs from Depot for the last time and show the time (in EST) and date that the process can be repeated. (Keep in mind the same playlist can be reused and only the missed songs will be added.
  10. If the total capacity isn't met, then the program will just stop without error and the YouTube playlist will be filled with the playlists' songs. I might've missed small details so be sure to keep looking through the code comments at the top of the pages and throughout to fully grasp the idea
A Discord Server Cloner Which Can Clone Any Discord Server In Just Few Minutes

A Discord Server Cloner Which Can Clone Any Discord Server In Just Few Minutes.

samet 4 Jul 23, 2022
Keypirinha plugin to install packages via Chocolatey

Keypiriniha Chocolatey This is a package for the fast keystroke launcher keypirinha (http://keypirinha.com/) It allows you to search & install package

Shadab Zafar 4 Nov 26, 2022
Cytotron - A unique discord bot like never before. Add it to your server to keep it active, motiviated, and amazing!!

Cytotron - Take your server to the next level Most of the details are in the website. Go to https://cytotron-bot.gq for more information. If that link

LeviathanProgramming 6 Jun 13, 2021
Get charts, top artists and top songs WITHOUT LastFM API

LastFM Get charts, top artists and top songs WITHOUT LastFM API Usage Get stats (charts) We provide many filters and options to customize. Geo filter

4 Feb 11, 2022
Fetch tracking numbers of Amazon orders, for the ease of the logistics.

Amazon-Tracking-Number Fetch tracking numbers of Amazon orders, for the ease of the logistics. Read Me First (How to use this code): Get Amazon "Items

Tony Yao 1 Nov 02, 2021
A discord.py bot template with easy deployment through Github Actions

discord.py bot template A discord.py bot template with easy deployment through Github Actions. You can use this template to just run a Python instance

Thomas Van Iseghem 1 Feb 09, 2022
Automatically searching for vaccine appointments

Vaccine Appointments Automatically searching for vaccine appointments Usage To copy this package, run: git clone https://github.com/TheIronicCurtain/v

58 Apr 13, 2021
Discord.py(disnake) selfbot

Zzee selfbot Discord.py selfbot Version: 1.0 ATTENTION! we are not responsible for your discord account! this program violates the ToS discord rules!

1 Jan 10, 2022
Talon accessibility - Experimental Talon integrations using macOS accessibility APIs

talon_accessibility Experimental Talon integrations using macOS accessibility AP

Phil Cohen 11 Dec 23, 2022
Telegram Bot Repo Capable of fetching the following Info via Anilist API inspired from AniFluid and Nepgear

Telegram Bot Repo Capable of fetching the following Info via Anilist API inspired from AniFluid and Nepgear Anime Airing Manga Character Scheduled Top

Rikka-Chan 2 Apr 01, 2022
Telegram Group Chat Statistics With Python

Telegram Group Chat Statistics How to Run First add PYTHONPATH in repository root directory enviroment variable by running: export PYTHONPATH=${PWD}

Sina Nazem 3 Apr 18, 2022
Clippin n grafting Backend

Clipping' n Grafting Presenting you, ๐ŸŽ‰ Clippin' n Grafting ๐ŸŽ‰ , your very own ecommerce website displaying all your artsy-craftsy stuff. Not only the

Google-Developer-Student-Club-ISquareIT (GDSC IยฒIT) 2 Oct 22, 2021
GitNews: Github webhooks for Telegram

GitNews - Github webhooks for Telegram Setup: server: clone repo git clone https

Druv Jagdish 1 Feb 14, 2022
The Main Pythonic Version Of Twig Using Nextcord

The Main Pythonic Version Of Twig Using Nextcord

8 Mar 21, 2022
Bitbucket Server API Wrapper

A simple wrapper for the Atlassian's Bitbucket Server / Bitbucket Datacenter (formerly Stash) REST API, written in Python.

Schweitzer Engineering Laboratories 4 Jan 06, 2023
Pydapper - A pure python port of the NuGet library dapper

pydapper A pure python library inspired by the NuGet library dapper. pydapper is

Zach Schumacher 38 Jan 02, 2023
Telegram Bot to Connect Strangers

Telegram Bot to Connect Strangers How to Run Set your telegram bot token as environment variable TELEGRAM_BOT_TOKEN: export TELEGRAM_BOT_TOKEN=your_t

PyTopia 12 Dec 24, 2022
Simple Webhook Spammer with Optional Proxy Support

๐Ÿ˜Ž ๏ฟฝSimple Webhook Spammer with Optional Proxy Support:- [+] git clone https://g

Terminal1337 12 Sep 29, 2022
A Discord bot to allow people to create lists of random characters, with limit reroll options.

Mugen Bot A small bot I made to practice python and allow people to publically select random characters on a discord server. Uses py-cord, as that is

Haley 2 Feb 06, 2022
Instagram bot for promoting ROKA trainee soldier(just like me)'s consolation letters.

Instagram_bot (ํ•„์ž๋ฅผ ํฌํ•จํ•œ) ๋ชจ๋“  ๋Œ€ํ•œ๋ฏผ๊ตญ ํ›ˆ๋ จ๋ณ‘๋“ค์„ ์œ„ํ•œ ์ธ์Šคํƒ€๊ทธ๋žจ ์ธํŽธ์ง€๊ธฐ์ž…๋‹ˆ๋‹ค. Instagram bot for promoting ROKA trainee soldier(just like me)'s consolation letters. ๋“ค์–ด๊ฐ€๊ธฐ (Ge

Lee, Jongjun 2 Nov 21, 2021