Well yeah why pay for spotify if can use VLC media player, a text file, a few youtube links and a small python script to listen to your playlist. Why? cuz you know thats the stuff I love to do and if this doesnt interest you, hey youre getting a Ad-Free Music Player without anyone collecting your data. And yeah all of this stuff is open-source, even the libraries i am using too
Skip to the end if you just want the code
Getting everything
You will need some stuff to get this project done, but I guess you probably have some of it or all of it already on your machine. Ok so this is the stuff you will need
- VLC Media Player (aka VideoLAN)
- Python (I made this on python 3.9 but this is pretty small and should work in anything above python2)
- The Youtube links of all your playlist songs (but you can use any link that works with VLC)
Wait a sec, why VLC? I mean there are a lot of options?
Yeah lemme tell you. Imagine you know you use a custom music player that you are using to play songs at a party and then your non-existent friend asks, "hey wheres the equiliser" or "hey i wanna see the music video" or even "hey can you add subtitles" and then you don't have any answer because you didn't code that part out. VLC will help you in those situations, its pretty lightweight but it will help you get low-level customization done
Also im lazy, let VLC do the hard part
Lets go
First I assume you already have VLC on your computer. Also I assume you are on Windows. Now the thing is that VLC ships with command line tools too. To enable these you need to add the path to these command line tools in the PATH environment variable.
To do so:
- Open Program files or Program Files(x86) and find the vlc folder or just use these locations
C:\Program Files\VideoLAN\VLC\
or
C:\Program Files (x86)\VideoLAN\VLC\
if these folders exist, you can move ahead
- Open windows search and type "edit environment variables". Something like this should pop up, click on it
Or alternatively, you can open it from the command line
- Now select PATH and click edit. Something like this
- Now click on new and then add the Program Files or Program Files(x86) for VLC. something like this. then press "OK"
Then close the window
- Test it out. to test this, open a new command prompt window and type
vlc
and check if any error is raised. If successful it should open vlc media player
Part 2: Script Time
Create a python file, anywhere really and open it in your favorite code editor
- Import some modules
we dont really need a lot, and none from outside the stdlib, we need
os
andrandom
but random is optional (we will use it for shuffling songs but some people dont like it)
import os
import random
- Create the
playlist.txt
file
This is where all hyperlinks will be stored. you can execute copy NUL playlist.txt
to create this file too
- Add some test links to the file
Add a few songs from your playlist, here are some to help you out
https://www.youtube.com/watch?v=dQw4w9WgXcQ
https://www.youtube.com/watch?v=QH2-TGUlwu4
https://www.youtube.com/watch?v=w0AOGeqOnFY
- Read the file
to do so write a simple read mode open
statement, something like this
file = open('playlist.txt', 'r').read().split('\n')
Here we also split the file on each newline hence creating a list, so each link must be on a separate line
printing the output of file we should get something like this
['https://www.youtube.com/watch?v=dQw4w9WgXcQ', 'https://www.youtube.com/watch?v=QH2-TGUlwu4', 'https://www.youtube.com/watch?v=w0AOGeqOnFY']
- Now we shuffle the songs This wont be hard we just use
random.shuffle(file)
Omit this line if you don't like your playlist shuffled
- Appending all values to a single string
Now we append all values of that list from above. We will see the importance of it below. We do it using this for loop
videos = ''
for i in file:
videos+= f"{i} "
printing the output of videos we get something like this
https://www.youtube.com/watch?v=w0AOGeqOnFY https://www.youtube.com/watch?v=QH2-TGUlwu4 https://www.youtube.com/watch?v=dQw4w9WgXcQ
As you can see, all of them are in a single list
- Running VLC Now we execute the command that loads vlc with your playlist This statement does the job
os.system(f'vlc --no-video {videos}')
we use the --no-video flag
because we are listening to songs, not seeing their YouTube videos. This should also cut down on bandwidth usage
- Running it
Execute the file and enjoy your playlist
Full code
this is all the code we discussed here
import os
import random
file = open('playlist.txt', 'r').read().split('\n')
random.shuffle(file) # Shuffle the Playlist
## Add all hyperlinks to a single string
videos = ''
for i in file:
videos+= f"{i} "
## Run it all
os.system(f'vlc --no-video {videos}')
Find the full code here https://github.com/akionsight/Imagine-Using-Spotify
Credits
Credits to this blog from vlchelp telling me about how to add VLC to path
End Notes
This is the first episode of this series, hope you like it and please tell me in the comments if you liked this blog or not.
Thanks, cya
Top comments (3)
nice this is gonna be useful, hope to see more such
very nice
Thanks