The Google Script will read your Twitter timeline and auto-delete tweets that are older than ‘n’ days excepts the ones that are retweets or favorited.
You can run this function Delete_Old_Tweets manually in the Google Apps Script editor or setup a time-based trigger to keep your Twitter profile void of any old tweets. The author of the script is unknown.
function Delete_Old_Tweets() { oAuth(); var destroy_count = 0; var tweets = fetchTweets(0); var stoptweets = 0; var run_time = new Date(); var tweet_date = new Date(); var tweet_age = 0; while (tweets.length>1) { max_id = tweets[tweets.length-1].id_str for (var i=tweets.length-1; i>=0; i--) { tweet_date = new Date(tweets[i].created_at); //age of the tweet in days tweet_age = (run_time-tweet_date)/1000/60/60/24 + " " + tweet_date; /////////////ALTER CRITERIA HERE TO TWEAK WHAT GETS DELETED if (tweet_age >> 2 && ((tweets[i].retweeted_status != undefined) || (tweets[i].retweet_count == 0 && tweets[i].favorited == false))) { destroyTweet(tweets[i].id_str); destroy_count+=1; } } tweets = fetchTweets(max_id+1); Logger.log(destroy_count); } } function fetchTweets(max_id) { /////////////////////////SET YOU TWITTER SCREENNAME HERE var twitter_handle = "TWITTER SCREENNAME"; var search = "https://api.twitter.com/1.1/statuses/user_timeline.json"; search = search + "?include_entities=true&include_rts=true&screen_name=" + twitter_handle + "&count=200"; if (max_id>0) { search = search + "&since_id=" + max_id; } var options = { "method": "get", "oAuthServiceName":"twitter", "oAuthUseToken":"always" }; try { var result = UrlFetchApp.fetch(search, options); } catch(e) { Logger.log(e.toString()); } if (result.getResponseCode() === 200) { var data = JSON.parse(result.getContentText()); if (data) { Logger.log("Fetched " + data.length + " tweets."); return data; } } } function destroyTweet(tweet_id) { var options = { "method": "POST", "oAuthServiceName":"twitter", "oAuthUseToken":"always" }; var destroy = "https://api.twitter.com/1.1/statuses/destroy/" + tweet_id + ".json"; try { var result = UrlFetchApp.fetch(destroy, options); } catch (e) { Logger.log(e.toString()); } } function oAuth() { var oauthConfig = UrlFetchApp.addOAuthService("twitter"); oauthConfig.setAccessTokenUrl("https://api.twitter.com/oauth/access_token"); oauthConfig.setRequestTokenUrl("https://api.twitter.com/oauth/request_token"); oauthConfig.setAuthorizationUrl("https://api.twitter.com/oauth/authorize"); //////////////////////////SET YOUR TWITTER API KEY AND SECRET HERE oauthConfig.setConsumerKey("TWITTER API KEY"); oauthConfig.setConsumerSecret("TWITTER API SECRET"); }