gdi3d / mute-spotify-ads-mac-osx Goto Github PK
View Code? Open in Web Editor NEWMute Mac (osx) computer audio when Spotify plays an AD
Home Page: https://gdi3d.github.io/mute-spotify-ads-mac-osx/
License: MIT License
Mute Mac (osx) computer audio when Spotify plays an AD
Home Page: https://gdi3d.github.io/mute-spotify-ads-mac-osx/
License: MIT License
I've found two ads that are not being detected by the script.
I'm investigating how to detect them to create a fix for those too.
I often have a crash of the script and this:
cat: MuteSpotifyAds/stats.txt: No such file or directory
So maybe there should be an option for stats, I don`t need that.
I would like to recommend to use automator than terminal, because sometimes terminal would blocked the ads late. But for automator it would block the ads anytime.
As the title suggests, when running the shell script & updating from CLI, I get the following output:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5672 100 5672 0 0 89126 0 --:--:-- --:--:-- --:--:-- 106k
Update finish. π₯³
45:51: execution error: The variable volume is not defined. (-2753)
I'm inclined to think it's something on my end, but figured I'd reach out and see if this was something you were aware of.
For reference:
Happy to provide whatever additional information you'd like πββοΈ
ej:
sh ~/MuteSpotifyAds/NoAdsSpotify.sh
return:
unknown option: /Users/ch3ma/MuteSpotifyAds/NoAdsSpotify.sd
Tanks.
this script works perfectly, however I'd like a way to execute it automatically when Spotify gets opened, is there a way?
You should consider Appifying the script using a tool like https://github.com/sveinbjornt/Platypus or something :D
After update to Big Sur, application starts to mute when playing eg. videos on web, sometimes mutes ad with delay or even not at all.
Nice app btw. keep doing the great work!
Hi,
the latest update seems to have fixed a few issues I had (some types of ads were not being detected, and the program did not always start). However, since then, my computer fan goes ballistic when running the program, even when no other app (except spotify) are open. Spotify alone without the muter does not cause this problem.
The header of my Terminal window is constantly switching between "sleep" and "cut" while an add is running, and between "sleep", "cut" and "osascript" when music is playing, which it did not before the update... there might be something there?&
Running on 10.14.6. Weirdly, no process seems to gobble up the CPU when this happens, but it is on average a lot higher when the program is running.
Any idea what could be causing this?
Ads now play on Spotify, this started after the most recent MacOS update. 13.0 Ventura, I really like using this script. Thanks for making it :)
#!/bin/bash
CURRENT_VER=15
set -e
OSX_VERSION=$(defaults read loginwindow SystemVersionStampAsString)
pat_1="([0-9]{1,2}).([0-9]{1,2}).([0-9]{1,2})"
pat_2="([0-9]{1,2}).([0-9]{1,2})"
[[ $OSX_VERSION =~ $pat_1 ]] # $pat must be unquoted
if [[ ${BASH_REMATCH[0]} == $OSX_VERSION ]]; then
OSX_VERSION=$(printf %02d "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}" "${BASH_REMATCH[3]}")
else
[[ $OSX_VERSION =~ $pat_2 ]] # $pat must be unquoted
OSX_VERSION=$(printf %02d "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}" "00")
fi
OS_BIGSUR_3=110203
OS_BIGSUR_2=110201
OS_BIGSUR=110001
OS_CATALINA=101507
OS_MOJAVE=101406
OS_HIGH_SIERRA=101306
OS_SIERRA=101206
OS_EL_CAPITAN=101106
OS_YOSEMITE=101005
OS_MAVERICKS=100905
OS_MOUNTAIN_LION=100805
OS_LION=100705
OS_SNOW_LEOPARD=100608
OS_LEOPARD=100508
OS_TIGER=100411
OS_PANTHER=100309
OS_JAGUAR=100208
OS_PUMA=100105
OS_CHEETAH=100004
INSTALLATION_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
if ! [ -x "$(command -v curl)" ]; then
echo "curl command is not present. Auto Update function is disabled"
else
LATEST_VER=$(curl -s https://raw.githubusercontent.com/gdi3d/mute-spotify-ads-mac-osx/master/NoAdsSpotify.sh | grep "CURRENT_VER=" | head -n1 | awk -F '=' '{print $2}')
if [ $CURRENT_VER -ne $LATEST_VER ]; then
read -n 1 -p "A new version is available, will you like to update? [y/N]" update
if [ -n "$update" ]; then
if [ $update == "y" ]; then
curl https://raw.githubusercontent.com/gdi3d/mute-spotify-ads-mac-osx/master/NoAdsSpotify.sh > $INSTALLATION_DIR/NoAdsSpotify.sh
echo "Update finish. π₯³"
RELAUNCH="/bin/bash ${INSTALLATION_DIR}/NoAdsSpotify.sh {$1}"
exec ${RELAUNCH}
else
echo
echo "Skiping update... βΉοΈ"
fi
else
echo
echo "Skiping update... βΉοΈ"
fi
fi
fi
echo
echo "Spotify Ads will be silenced while this program is running!. (This works ONLY with the Spotify App, not the web version)"
echo "This program was downloaded from https://gdi3d.github.io/mute-spotify-ads-mac-osx/ (check for documentation)"
echo
echo "If the program is not working properly please open an issue at: https://github.com/gdi3d/mute-spotify-ads-mac-osx/issues/new"
echo
echo "Press control+c to close this program or close the terminal window"
echo
SPOTIFY_EVENT_CATALINA="com.spotify.client.+nowPlayingItem.+{"
SPOTIFY_EVENT_MOJAVE="com.spotify.client.+playbackQueue.+{"
AD_REG="albumName = "";"
SONG_REG="albumName = (\w+|".+");"
EVENT_PRESENT=0 # switch to 1 when a the regex SPOTIFY_EVENT_xxxx matches
CURRENT_VOLUME=$(osascript -e "output volume of (get volume settings)")
AD_DETECTED=0 # switch to 1 when an ad is playing
MSG_AD_ECHOED=0
MSG_SONG_PLAYING_ECHOED=0
LOG_ARGUMENTS_PROCESS=--process="mediaremoted"
LOG_ARGUMENTS_TYPE=--type="log"
LOG_ARGUMENTS_COLOR=--color="none"
LOG_ARGUMENTS_STYLE=--style="compact"
LOG_ARGUMENTS_PREDICATE=--predicate='eventMessage contains[cd] "spotify.client"'
LOG_ARGUMENTS=( "$LOG_ARGUMENTS_PROCESS" "$LOG_ARGUMENTS_COLOR" "$LOG_ARGUMENTS_TYPE" "$LOG_ARGUMENTS_STYLE" "$LOG_ARGUMENTS_PREDICATE" )
log stream "${LOG_ARGUMENTS[@]}" |
while read STREAM_LINE
do
# check for OS version and look for the event that tell us that
# a new song/ad is playing
if [ $OSX_VERSION -ge $OS_CATALINA ]; then
if grep -q -E "$SPOTIFY_EVENT_CATALINA" <<< "$STREAM_LINE"; then
EVENT_PRESENT=1
# We should only store the volume value while a song is playing
# otherwise we'll be storing the volume value setted for the ad playback (low volume)
if [ $AD_DETECTED -eq 0 ]; then
CURRENT_VOLUME=$(osascript -e 'tell application "Spotify" to set A to sound volume')
fi
fi
elif [ $OSX_VERSION -eq $OS_MOJAVE ]; then
if grep -q -E "$SPOTIFY_EVENT_MOJAVE" <<< "$STREAM_LINE"; then
EVENT_PRESENT=1
# We should only store the volume value while a song is playing
# otherwise we'll be storing the volume value setted for the ad playback (low volume)
if [ $AD_DETECTED -eq 0 ]; then
CURRENT_VOLUME=$(osascript -e 'tell application "Spotify" to set A to sound volume')
fi
fi
else
# We won't be searching for the event that's about to trigger
# the ad since it's not present on this version of the OSX.
# Related to: https://github.com/gdi3d/mute-spotify-ads-mac-osx/issues/2
EVENT_PRESENT=1
# We should only store the volume value while a song is playing
# otherwise we'll be storing the volume value setted for the ad playback (low volume)
if [ $AD_DETECTED -eq 0 ]; then
CURRENT_VOLUME=$(osascript -e 'tell application "Spotify" to set A to sound volume')
fi
fi
# Check if it's a song or an Ad and change the volume when needed
if [ $EVENT_PRESENT -eq 1 ]; then
if grep -q -E "$AD_REG" <<< "$STREAM_LINE"; then
if [ $MSG_AD_ECHOED -eq 0 ]; then
MSG_AD_ECHOED=1
# We found and Ad OMG!! Let turn the volume way down!
echo ">> π Ad found! Your volume will be set all the way down now until the next song!"
fi
osascript -e 'tell application "Spotify" to set sound volume to 1'
AD_DETECTED=1
EVENT_PRESENT=0
MSG_SONG_PLAYING_ECHOED=0
elif grep -q -E "$SONG_REG" <<< "$STREAM_LINE"; then
if [ $MSG_SONG_PLAYING_ECHOED -eq 0 ]; then
# Ad is gone. Restore volume!
MSG_SONG_PLAYING_ECHOED=1
echo ">> π Songs are playing ππΊπ. Audio back to normal"
else
CURRENT_VOLUME=$(osascript -e 'tell application "Spotify" to set A to sound volume')
fi
osascript -e 'tell application "Spotify" to set sound volume to '$CURRENT_VOLUME
AD_DETECTED=0
EVENT_PRESENT=0
MSG_AD_ECHOED=0
fi
fi
done
trap 'echo ">>> βοΈ π Oops! Something failed and the program is not running. Please open a new issue at: https://github.com/gdi3d/mute-spotify-ads-mac-osx/issues/new and copy and paste the whole output of this window into so I can fix it."' EXIT
MacBook-Pro-8:~ janedoe$ mkdir -p ~/MuteSpotifyAds && curl https://raw.githubusercontent.com/gdi3d/mute-spotify-ads-mac-osx/master/NoAdsSpotify.sh > /MuteSpotifyAds/NoAdsSpotify.sh janedoe$ sh ~/MuteSpotifyAds/NoAdsSpotify.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7424 100 7424 0 0 20176 0 --:--:-- --:--:-- --:--:-- 20228
MacBook-Pro-8:
Spotify Ads will be silenced while this program is running!.
This program was downloaded from https://gdi3d.github.io/mute-spotify-ads-mac-osx/ (check for documentation here)
If you are using HDMI speakers please run this command like this: sh ~/MuteSpotifyAds/NoAdsSpotify.sh hdmi
If the program is not working properly please open an issue at: https://github.com/gdi3d/mute-spotify-ads-mac-osx/issues/new
Press control+c to close this program or close the terminal window
log: PID not found for 'mediaremoted'
π Oops! Something failed and the program is not running. Please open a new issue at: https://github.com/gdi3d/mute-spotify-ads-mac-osx/issues/new and copy and paste the whole output of this window into yet so I can fix it.
MacBook-Pro-8:~ janedoe$
After the ad is over, Spotify will remain muted.
Can you help?
Hi,
Thanks for this great script.
I want to contribute little script for automate the script using Automator
Open Automator
Select "Run Shell Script"
Paste this script
#!/bin/bash
osascript -e 'tell application "spotify"' -e "pause" -e 'end tell'
sleep 5
osascript -e 'tell application "terminal"' -e 'do script "./MuteSpotifyAds/NoAdsSpotify.sh"' -e 'end tell'
Save and named this app whatever you want, eg : "MuteSpotifyAds.app"
Open Setting
Search "Login Items"
Add "MuteSpotifyAds.app" on "Open at Login"
Where can i find the file i want to uninstall it
Spotify Ads will be silenced while this program is running!. (This works ONLY with the Spotify App, not the web version). im ready install spotify desktop
I've had this problem for a very long time on different devices and macOS versions. When the script is running, no matter how many times I set the volume at 50%, it keeps falling back to somewhere around 40% after each song. I does it in a few steps from what I see, very quickly.
I can't be the only one who experiences this, right?
#!/bin/bash
CURRENT_VER=9
set -e
OSX_VERSION=$(defaults read loginwindow SystemVersionStampAsString)
OSX_VERSION="${OSX_VERSION//.}"
OS_BIGSUR=1101
OS_CATALINA=10157
OS_MOJAVE=10146
OS_HIGH_SIERRA=10136
OS_SIERRA=10126
OS_EL_CAPITAN=10116
OS_YOSEMITE=10105
OS_MAVERICKS=1095
OS_MOUNTAIN_LION=1085
OS_LION=1075
OS_SNOW_LEOPARD=1068
OS_LEOPARD=1058
OS_TIGER=10411
OS_PANTHER=1039
OS_JAGUAR=1028
OS_PUMA=1015
OS_CHEETAH=1004
HDMI=0
if [ "$1" == "hdmi" ]; then
HDMI=1
fi
INSTALLATION_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
if ! [ -x "$(command -v curl)" ]; then
echo "curl command is not present. Auto Update function is disabled"
else
LATEST_VER=$(curl -s https://raw.githubusercontent.com/gdi3d/mute-spotify-ads-mac-osx/master/NoAdsSpotify.sh | grep "CURRENT_VER=" | head -n1 | awk -F '=' '{print $2}')
if [ $CURRENT_VER -ne $LATEST_VER ]; then
read -n 1 -p "A new version is available, will like to update? [y/N]" update
if [ -n "$update" ]; then
if [ $update == "y" ]; then
curl https://raw.githubusercontent.com/gdi3d/mute-spotify-ads-mac-osx/master/NoAdsSpotify.sh > $INSTALLATION_DIR/NoAdsSpotify.sh
echo "Update finish. π₯³"
RELAUNCH="/bin/bash ${INSTALLATION_DIR}/NoAdsSpotify.sh {$1}"
exec ${RELAUNCH}
else
echo
echo "Skiping update... βΉοΈ"
fi
else
echo
echo "Skiping update... βΉοΈ"
fi
fi
fi
echo
echo "Spotify Ads will be silenced while this program is running!."
echo "This program was downloaded from https://gdi3d.github.io/mute-spotify-ads-mac-osx/ (check for documentation here)"
echo "If you are using HDMI speakers please run this command like this: sh ~/MuteSpotifyAds/NoAdsSpotify.sh hdmi"
echo
echo "If the program is not working properly please open an issue at: https://github.com/gdi3d/mute-spotify-ads-mac-osx/issues/new"
echo
echo "Press control+c to close this program or close the terminal window"
echo
SPOTIFY_EVENT_CATALINA="com.spotify.client.+nowPlayingItem.+{"
SPOTIFY_EVENT_MOJAVE="com.spotify.client.+playbackQueue.+{"
AD_REG="albumName = "";"
SONG_REG="albumName = (\w+|".+");"
EVENT_PRESENT=0 # switch to 1 when a the regex SPOTIFY_EVENT_xxxx matches
CURRENT_VOLUME=$(osascript -e "output volume of (get volume settings)")
AD_DETECTED=0 # switch to 1 when an ad is playing
MSG_AD_ECHOED=0
MSG_SONG_PLAYING_ECOHED=0
log stream --process="mediaremoted" --type="log" --color="none" --style="compact" |
while read STREAM_LINE
do
# check for OS version and look for the event that tell us that
# a new song/ad is playing
if [ $OSX_VERSION -eq $OS_CATALINA ] || [ $OSX_VERSION -eq $OS_BIGSUR ]; then
if grep -q -E "$SPOTIFY_EVENT_CATALINA" <<< "$STREAM_LINE"; then
EVENT_PRESENT=1
# We should only store the volume value while a song is playing
# otherwise we'll be storing the volume value setted for the ad playback (low volume)
if [ $AD_DETECTED -eq 0 ]; then
if [ $HDMI -eq 1 ]; then
CURRENT_VOLUME=$(osascript -e 'tell application "Spotify" to set A to sound volume')
else
CURRENT_VOLUME=$(osascript -e "output volume of (get volume settings)")
fi
fi
fi
elif [ $OSX_VERSION -eq $OS_MOJAVE ]; then
if grep -q -E "$SPOTIFY_EVENT_MOJAVE" <<< "$STREAM_LINE"; then
EVENT_PRESENT=1
# We should only store the volume value while a song is playing
# otherwise we'll be storing the volume value setted for the ad playback (low volume)
if [ $AD_DETECTED -eq 0 ]; then
if [ $HDMI -eq 1 ]; then
CURRENT_VOLUME=$(osascript -e 'tell application "Spotify" to set A to sound volume')
else
CURRENT_VOLUME=$(osascript -e "output volume of (get volume settings)")
fi
fi
fi
else
# We won't be searching for the event that's about to trigger
# the ad since it's not present on this version of the OSX.
# Related to: https://github.com/gdi3d/mute-spotify-ads-mac-osx/issues/2
EVENT_PRESENT=1
# We should only store the volume value while a song is playing
# otherwise we'll be storing the volume value setted for the ad playback (low volume)
if [ $AD_DETECTED -eq 0 ]; then
if [ $HDMI -eq 1 ]; then
CURRENT_VOLUME=$(osascript -e 'tell application "Spotify" to set A to sound volume')
else
CURRENT_VOLUME=$(osascript -e "output volume of (get volume settings)")
fi
fi
fi
# Check if it's a song or an Ad and change the volume when needed
if [ $EVENT_PRESENT -eq 1 ]; then
if grep -q -E "$AD_REG" <<< "$STREAM_LINE"; then
if [ $MSG_AD_ECHOED -eq 0 ]; then
MSG_AD_ECHOED=1
# We found and Ad OMG!! Let turn the volume way down!
echo ">> π Ad found! Your volume will be set all the way down now until the next song!"
fi
if [ $HDMI -eq 1 ]; then
osascript -e 'tell application "Spotify" to set sound volume to 1'
else
osascript -e "set volume without output muted output volume 0.1 --100%"
fi
AD_DETECTED=1
EVENT_PRESENT=0
MSG_SONG_PLAYING_ECOHED=0
elif grep -q -E "$SONG_REG" <<< "$STREAM_LINE"; then
if [ $MSG_SONG_PLAYING_ECOHED -eq 0 ]; then
# Ad is gone. Restore volume!
MSG_SONG_PLAYING_ECOHED=1
echo ">> π Songs are playing ππΊπ. Audio back to normal"
fi
if [ $HDMI -eq 1 ]; then
osascript -e 'tell application "Spotify" to set sound volume to '$CURRENT_VOLUME
else
osascript -e 'set volume output volume '$CURRENT_VOLUME' --100%'
fi
AD_DETECTED=0
EVENT_PRESENT=0
MSG_AD_ECHOED=0
fi
fi
done
trap 'echo ">>> π Oops! Something failed and the program is not running. Please open a new issue at: https://github.com/gdi3d/mute-spotify-ads-mac-osx/issues/new and copy and paste the whole output of this window into yet so I can fix it."' EXIT
hi
I have Mac 10.13.6 high Sierra but I'm still earring ads I'm running this command sh ~/MuteSpotifyAds/NoAdsSpotify.sh
on terminal but it shows this
its showing this, what I'm doing wrong
Last login: Sun Nov 29 16:47:37 on ttys000
Hugos-MBP:~ hugo$ sh ~/MuteSpotifyAds/NoAdsSpotify.sh
Spotify Ads will be silenced while this program is running!.
This program was downloaded from https://gdi3d.github.io/mute-spotify-ads-mac-osx/ (check for documentation here)
If you are using HDMI speakers please run this command like this: sh ~/MuteSpotifyAds/NoAdsSpotify.sh hdmi
If the program is not working properly please open an issue at: https://github.com/gdi3d/mute-spotify-ads-mac-osx/issues/new
Press control+c to close this program or close the terminal window
Unused argument: none
Too many arguments to 'stream' verb
log: usage:
log stream [ --system | --process (pid|process) ]
[ --level default|info|debug][ --predicate ]
[ --source ][ --style (syslog|json|compact) ][ --color (auto|always|none) ]
[ --timeout [m|h|d] ][ --type activity|log|trace ]
Usage:
Stream stream activities, log data or trace messages from a given process
or the system. By default, the command assumes system-wide streaming.
Specifying a process id with the --process option will narrow the results.
Examples:
log stream --level=info
log stream --predicate examples:
--predicate 'eventMessage contains "my message"'
--predicate 'eventType == logEvent and messageType == info'
--predicate 'processImagePath endswith "d"'
--predicate 'not processImagePath contains[c] "some spammer"'
--predicate 'processID < 100'
--predicate 'senderImagePath beginswith "my sender"'
--predicate 'eventType == logEvent and subsystem contains "com.example.my_subsystem"'
Hugos-MBP:~ hugo$
I would love to have this script unmute downloaded files and music as well that I added personally into music.
In Spotify you can add songs to your playlist from your local files. I hope you understand what I mean. I guess the script also detects that the downloaded file is not a song so it mutes the audio.Idk how long this script was made ago. sooooo id be happy to get a reply because I always use this script when i open Spotify :))))
I'm not 100% sure this is behavior due to the script, but I get a loud system beep whenever an ad is sensed. The ad is muted and unmuted when song is detected, so that is working well. Just the beep is a bit jarring. Feel free to close if this is not caused by script. I'm happy to help debug/test.
P.S. - Thanks for sharing the script. Love it.
I've found that using the --no-backtrace option prevent the script from running on OSX Mojave. Removing the option will let you run the script but ads are not muted.
It would be great if we could specify where the stats file will be located, instead of generating it in the current directory.
And thank you for the script!
first , Thank you for your brilliant idea
But I don't understand the purpose of stats.txt
It always makes
What is it used for?
thx all
# create stats file
if ! test -f "stats.txt"; then
echo 0 > stats.txt
fi
Instead of manually running the script every time, is there a way to trigger the script while spotify application is opened/launched.
Amazing script. Thanks for saving me a million hours on stupid ads. Would it be possible to guard auto-update behind some flag?
Hi,
Where do I find the update for Spotify ad muting after Mac updated to Ventura OS?
Thank you in advance, Ryan
doesnt work with muting ads on spotify, but it saysit sworking on the terminal. i refreshed the app, but still no use
Macs-MacBook-Air:~ macairr$ mkdir -p ~/MuteSpotifyAds && curl https://raw.githubusercontent.com/gdi3d/mute-spotify-ads-mac-osx/master/NoAdsSpotify.sh > /MuteSpotifyAds/NoAdsSpotify.sh macairr$ sh ~/MuteSpotifyAds/NoAdsSpotify.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7240 100 7240 0 0 34835 0 --:--:-- --:--:-- --:--:-- 34975
Macs-MacBook-Air:
Spotify Ads will be silenced while this program is running!. (This works ONLY with the Spotify App, not the web version)
This program was downloaded from https://gdi3d.github.io/mute-spotify-ads-mac-osx/ (check for documentation)
If the program is not working properly please open an issue at: https://github.com/gdi3d/mute-spotify-ads-mac-osx/issues/new
Press control+c to close this program or close the terminal window
log: PID not found for 'mediaremoted'
βοΈ π Oops! Something failed and the program is not running. Please open a new issue at: https://github.com/gdi3d/mute-spotify-ads-mac-osx/issues/new and copy and paste the whole output of this window into so I can fix it.
Whenever an ad plays, occasionally it works properly and mutes the ad, but most of the time for me there is a 1 to 5 second delay before the ad is muted, and a similar delay before the audio is unmuted. Sometimes it fails to mute an ad completely and I have to restart it from the terminal to get it working again.
I have been using mute-spotify-ads on my mac-osx and it has worked but now it stopped working. Ads are playing as if the program were not running.
MacOS Monterey 12.6.1 (21G217)
Spotify for macOS (Intel)
1.1.67.586.gbb5ef64e
Would be glad if this helps getting the program better.
Cheers!
As soon as you get event for spotify ads beginning , set spotify app's volume to 0 and play a media file [from users directory, ask user to pass an arg when he/she starts the script] as soon as you get event for a beginning of a new song , stop that media file and increase volume of spotify
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.