Change the Custom Taxonomy URL Slug pattern

After reading through about 20+ post on here, this is what I have come up with…

In this example http://test.com/{custom-post-type}/tag/{custom_taxonomy_name}/
or
http://test.com/book/tag/css/

Would do the trick I am after.

//http://test.com/book/tag/css/
function custom_taxonomies_rewrite(){
    add_rewrite_rule('^book/tag/([^/]*)/?','index.php?book_tag=$matches[1]','top');
}
add_action('init','custom_taxonomies_rewrite');

I am not sure on the best way to call this though, right now it is called with init action. This seems like something that should only be called once and then the re-writes file rebuilt.

If this looks like the right way to do this, please tell me where I should be calling this code from, with init or another action/hook?