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');
} 
  
  
  
  
 