Add closed captions or data driven graphics to your After Effects project using .csv files that a source text layer pulls data from.

Quick expression that will auto-resize a shape according to a text layer size.

Here is an example of my typical After Effects workspace. I like to have my Project Files on the far left with the Effects Control Panel to the right of it. This allows me to select any layer from the Comp’s Timeline and immediately see the effects applied to the selected layer without having to manually open the Effects Panel. I also keep my Motion Tracking panel next to the Timeline and below the Effects and Presets so I can quickly enter into Motion Tracking mode.

//FLICKER OPACITY
blinkSpeed =10;
n = Math.sin(time*blinkSpeed);
if (n<=0) 0 else 100;
//OSCILLATE POSITION BACK AND FOURTH ON X AXIS:
amplitude = 10;
frequency = 3;
temp=amplitude*Math.sin(time*frequency)+amplitude;
// add the result to the current x pos
temp=temp+transform.position[0];
//plug the new x into slot 0. y is currently left unchanged
[temp, transform.position[1]]
//MAKE A LAYER BOUNCE:
bounceSpeed=7;
flight=01;
bounceHeight=3.5;
t=Math.abs((time*2*bounceSpeed)%2-1);
t=linear(t,flight,0,0,1);
b=Math.cos(t*Math.PI/2);
value - [0,bounceHeight*b];
//FLICKER IN TO 100% OPACITY:	
//Adjust this flicker frequency to your taste
flickerFrequency = 150;

op = value;
if(op > 0 && op < 100){
    reverseAmt=100-transform.opacity;
    wiggledAmt=wiggle(flickerFrequency,reverseAmt);
    roundedAmt=Math.round((wiggledAmt/100));
    roundedAmt*100;
}
//BOUNCE ON MARKER EVENT (put in scale):
n = 0;
if (marker.numKeys > 0){
n = marker.nearestKey(time).index;
if (marker.key(n).time > time){
n--;
}
}
if (n == 0){
value;
} else {
max_dev=20; // max deviation in pixels
spd=20; //speed of oscillation
decay=6; //how fast it slows down
t = time - marker.key(n).time;
s = max_dev*Math.sin(spd*(t))/Math.exp(decay*t);
value + [s,s];
}
//PENDELUM SWING:
veloc = 10;  //how fast it swings
amplitude = 50;  //how high
decay = .999;
amplitude*Math.sin(veloc*time)/Math.exp(decay*time);
————————————————————————————

//PENDULUM SWING ON MARKER EVENT(put in rotation):
n = 0;
if (marker.numKeys > 0){
n = marker.nearestKey(time).index;
if (marker.key(n).time > time){
n--;
}
}
if (n == 0){
value;
} else {
veloc = 10;  //how fast it swings
amplitude = 100;  //how high
decay = 4;
t = time - marker.key(n).time;
s= amplitude*Math.sin(veloc*t)/Math.exp(decay*t);
value + s;
}
//OSCILLATE LAYER IN AN ELLIPSE:
//Custom Adjustments:
radiusDistX = 30;  //set to zero for up/down oscillation
radiusDistY = 100;  //set to zero for sideways oscillation
period = 1; 
// DON'T ADJUST
value + [Math.sin(time*period)*radiusDistX,
-Math.cos(time*period)*radiusDistY]