-
Notifications
You must be signed in to change notification settings - Fork 52
Home
Welcome to the ytify wiki!
The workings of the entire project will be documented here for future contributors & maintainers.
-
ytify started by scraping of streaming download links from a now discontinued youtube downloader.
-
I developed a yt-dlp backend for the same purpose for v5, which has now been discontinued in favor of
-
the piped api in v5.1 release, had been using so without any changes
-
until like september of 2023 when the piped api underwent some changes (due to yt) that affected playback which could only be solvable by implementing dash playback. To me this was a major change, I somehow luckily stumbled upon the invidious api so i started using it just for streams (v6.5), leaving search and other api operations to piped as is.
-
After sometime I learnt that some hosts have both piped and invidious instances, somehow had the idea to reimplement the streams with piped but switch the playback links with their invidious counterpart (v6.9, April 2024), this actually worked and we have kept that architechture intact so far, AKA the Unified Instance Architechture.
To modify icons in the project, one has to first sync with the full icon base by
- Visiting https://remixicon.com/collection
- Press Back to go to https://remixicon.com
- Start Searching & Selecting all icons from the remixicon.css file.
- When you are done, go back to the /collection by pressing Forward.
- Now Press on
Download Fonts
Button which will download a zip. - Extract only the
remixicon.css
andremixicon.woff2
files. - Now you can replace them with the original files in the project.
- It uses a basic txt formatting not json for efficiency.
- A new playlist data appears after every blank line.
- Each data item is separated by a line.
- The first item is playlist name.
- The second item is playlist id.
- The third item is playlist thumbnail id.
- Visit your desired ytm site, Beatbump recommended.
- Search your desired playlist and open it.
- Get the playlist id from the link of the playlist.
- Get the thumbnail id from the image link of the thumbnail.
- Add to the database by following the outline above.
Here's an example implementation in js that converts the text to array to an array of objects.
fetch('https://raw.githubusercontent.com/wiki/n-ce/ytify/ytm_pls.md')
.then(res => res.text())
.then(text => text.split('\n'))
.then(data => {
const array = [];
for (let i = 0; i < data.length; i += 4)
array.push({
"type": "playlist",
"name": data[i + 1],
"uploaderName": "YouTube Music",
"url": '/playlists/' + data[i + 2],
"thumbnail": '/' + data[i + 3]
});
// do whatever with array
});