As mentioned in my comment, tick data is the individual quotes and trades; Yahoo only has daily data. As an analogy, you can always make a high-definition photo more blurry and pixelated, but you can't add detail and definition to a bad picture. Daily data is just an aggregate of individual ticks, so you can't get the individual ticks from daily data.
You will need a different source for tick data, and those are usually commercial. (Vendors sell to professional traders, after all.)
With that said, once you do get some tick data, aggregations are pretty straightforward. I've included some pandas code here for posterity; this assumes a trades Dataframe with price and size columns, indexed by timestamp.
Time Bars
Just give the frequency you desire. Here is an example of five-minute bars:
trades.groupby(pd.Grouper(freq="5min")).agg({'price': 'ohlc', 'size': 'sum'})
Tick Bars
We'll define a helper function to round-down to the nearest integer:
def bar(xs, y): return np.int64(xs / y) * y
Then group by the bars of the Dataframe's row number. Here's an example of 10-tick bars:
trades.groupby(bar(np.arange(len(trades)), 10)).agg({'price': 'ohlc', 'size': 'sum'})
Volume Bars
Group by the bars of the cumulative volume. Here's an example for n shares traded:
trades.groupby(bar(np.cumsum(trades['size']), n)).agg({'price': 'ohlc', 'size': 'sum'}