One query for pages and blocks?

I use logseq to keep track of the content I consume.
Books, youtube videos, articles, podcasts, etc…
When I capture one, I just write into the journal and use blockproperties like

media:: [[book]]
status:: [[input]]

and when I now read it, and take some notes, quotes or whatever, I create a page for it when it comes to more than just a few lines.
If it’s just one line or something, i just create a child block and leave it in the journal page.

Now I look for a way to query for all books for a specific topic (tag) wheather I already read it or not. Do you have a solution for this problem? Maybe a possibility with advanced querys??
or should I change my workflow and just create a new page for every content?

thank you so much for your time!

I don’t have an answer for your query question but I do have a question about your system.

Do you go with the title of the work as the main bullet? As in:

Logseq sync with Git and GitHub - The Good and Geeky Way
media:: [[Youtube]]
status ::[[input]]
•notes about the video

Or some other method?
I am moving a daily journal/personal data/media consumption tracker from a more simple text based system and I am curious how other people are structuring their data.

yes, but I intend the notes as children of the title of the video.

It is not clear to me what the problem is. Querying for specific tags should be straightforward. How do you expect the output to look like?

In a normal query I have to make a decision between looking for blocks or pages.
So when one video is stored as a block because I took only 2 blocks of notes on it as children and another video has it’s own page because I took a lot of notes with more levels of indentation, and I have a query that looks for pages with the property video and the tag #coaching I only get the videos that have their own pages and don’t see the videos that are stored as blocks.
Is that understandable?

Thank you for your time and help
Spelloverflow

In the end, all the videos are inside blocks. Querying for blocks should return all videos. If you need finer control, should build an advanced query that looks for blocks (as just stated), using an or-clause to match the individual cases of interest (plain blocks, blocks of specific pages etc.) If you need help with it, you should provide examples for us to work with.