only, some have video only, and some have both video and audio. And also they’re available in multiple formats. For video there is AVC (which is apparently H.254), VP09, and AV01. And for audio there’s Mp4a and Opus. I don’t know what Opus is but apparently it is noticeably better than Mp4a. So if you’ve ever gone to a YouTube download page and seen a million download options that’s why. Although I hide the redundant ones and just display the one with the lowest file size at that quality level (usually VP09 or AV01).</p><p id="b96b">It’s actually pretty cool to see AV01 as I talked about it <a href="https://readmedium.com/why-apple-adding-av1-support-is-a-big-deal-faa46a356f3c">here</a>. And it does compress videos a little better than VP09 and a lot better than AVC.</p><p id="d170">Also apparently YouTube does something called DRC, dynamic range compression (Not Democratic Republic of Congo). It makes the quiet sections louder and the loud sections quieter. Apparently people really hate it and I guess there must be a way to disable it because I have not been able to find a music video with DRC enabled. I’ve never heard anyone talk about this before though.</p><p id="e027">So now that we have the formats we can just download them. Each format has a download link oddly enough. I did not expect that. Just keep in mind that the YouTube download links expire in 6 hours.</p><p id="3fc9">Of course here we run into a problem. When I saw this I was like, “Great, let’s just download an audio-only track if we only want audio or a video+audio track if we want video.”</p>
<figure id="dd49">
<div>
<div>
<img class="ratio" src="http://placehold.it/16x9">
<iframe class="" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FMvioOPqhOm6b4BI0FQ%2Ftwitter%2Fiframe&display_name=Giphy&url=https%3A%2F%2Fgiphy.com%2Fgifs%2Ffallontonight-jimmy-fallon-tonight-show-MvioOPqhOm6b4BI0FQ&image=https%3A%2F%2Fmedia0.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExa203NTd1dnVhNGpveHByMmxsOGRzZGxsejhsZzh2Zjk5N20xMTYwbSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FMvioOPqhOm6b4BI0FQ%2Fgiphy.gif&key=a19fcc184b9711e1b4764040d3dc5c07&type=text%2Fhtml&schema=giphy" allowfullscreen="" frameborder="0" height="435" width="435">
</div>
</div>
</figure></iframe></div></div></figure><p id="9eda">If you do that you’re restricted to at most 720p 30fps. Or so I’m told. I haven’t been able to find a file with both video and audio over 360p. And some videos don’t have any video+audio tracks at all. So that means we’re going to have to download a video file and an audio file (preferably without DRC) and merge them together.</p><p id="e01b">And this is perhaps the first really big problem I ran into. If I was doing this locally it would not be that big of a problem because there’s a nice command line package called <code>FFmpeg</code> that will just do it for you. Unfortunately it’s a bit more complicated when you’re working with Node.js because you have to do a bunch of file manipulation stuff.</p><p id="12d8">I ended up deciding to just download the files from Google’s servers separately and then merge them locally. Apparently Flutter has a package called <code>FFmpeg-kit</code> that will do this. Unfortunately it only works on Android, iOS, and MacOS.</p><p id="fdbf">Although Android will not be getting YouTube downloading because Google is really strict about that.</p>
<figure id="eaa2">
<div>
<div>
<img class="ratio" src="http://placehold.it/16x9">
<iframe class="" src="https://cdn.embedly.com/widgets/media.html?type=text%2Fhtml&key=a19fcc184b9711e1b4764040d3dc5c07&schema=twitter&url=https%3A//twitter.com/EzraDuown/status/1776352074449530961/&image=" a
Options
llowfullscreen="" frameborder="0" height="281" width="500">
</div>
</div>
</figure></iframe></div></div></figure><p id="7c7c">In fact the app mentioned above, NewPipe, is not available on the Google Play store. So that means that the only platform able to benefit from YouTube downloading is iOS. There is no macOS version of the app but you can run the iOS app on an Apple Silicon Mac. Web users will be restricted to downloading audio or downloading 360p videos. Oh well. Maybe I’ll improve this feature in the future.</p><p id="cae5">And another problem. YouTube throttles some of the downloads. Not all of them though which is weird. I thought it was broken at first. Nope, it’s just that the downloads were really really slow.</p><p id="74fe">Although there’s a way around this too. Flutter has its own package for downloading YouTube videos called <code>youtube_explode_dart</code> and this one has gotten around the throttling issues. It’s listed as issue #180 and fixed in pull request 185.</p><figure id="c76e"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*R0QbSVVKcpNt1NDnlL-7Qg.png"><figcaption></figcaption></figure><p id="4a2c">And it works great now. Well, for the streams it supports. It doesn’t support all the streams. But it supports enough.</p><p id="7308">And, one more thing <code>youtube_explode_dart</code> doesn’t actually do everything <code>youtube-dl</code> does. <code>youtube-dl</code> actually gives you a lot more information on the actual files (such as if the audio is DRCed). So I’m still going to have to use it. But I can use <code>youtube_explode_dart</code> to actually download the files.</p><p id="8fe6">I do feel a little silly for wasting so much time on this feature. Like, I built an RSS reader to watch YouTube videos, not to download them. And the only people that can really take advantage of this feature are iOS users.</p><p id="9388">It’s funny. Everyone thinks iOS is the locked-down one. But in this one specific case Android is more locked down. Because if you look up YouTube downloaders on iOS there are pages and pages of them.</p><p id="0e6e">I could see myself taking advantage of this feature. Stratum 3.0.0 also introduces the ability to add external links. So I could find a YouTube video I like that I want to download and I could just download it.</p><p id="01c9">And this experience has taught me a lot about the inner workings of YouTube. Mostly the subtitles. I had no idea the method I was using to get subtitles before was so suboptimal. It works and there’s nothing wrong with it but it could be better.</p><p id="7e7d">I’m pretty happy with Stratum’s YouTube functionality now. I was happy with it before, to be honest, I just went down a ‘YouTube Rabbit Hole’. But I did have one more feature planned: automatic YouTube summary generation.</p><p id="5b0e">Because since adding YouTube summaries I’ve been watching a lot more YouTube. I mean summarizing a lot more YouTube. There are a lot of channels I’m interested in but can’t get to due to time restrictions. Like TED and DW News. Guess what? I follow both of those sources of news now and just read the summaries. But you know what I don’t like? Tapping on the button to generate the summaries.</p><p id="8a38">Well, those are some future plans. It will be expensive though, which is also why I’m planning to announce new pricing for Stratum soon.</p><p id="f6db">If you liked this post and would like to stay updated with my future articles consider using my RSS app Stratum on <a href="https://apple.co/3rZyh9B">iOS</a> and <a href="https://play.google.com/store/apps/details?id=com.amorfatite.keystone">Android</a>. Also check out my language learning app Litany (<a href="https://apple.co/45prCDA">iOS</a>, <a href="https://play.google.com/store/apps/details?id=com.amorfatite.litany">Android</a>).</p></article></body>
D as Diagramming: The Organization-for-Opportunity Framework
The Ecological Practice Approach is about finding opportunity. Now we need a framework for turning opportunity to outcome.
I am recently working on the D as Diagramming project which focuses on exploring the power of Diagrams and Diagramming. From the perspective of Activity Theory, Diagram means a tool while Diagramming means an activity. Thus, the D as Diagramming project is both about tools and activity. From the perspective of cognitive science, diagramming is about spatial cognition which is my favorite topic. From the perspective of Curativity Theory, Diagrams are knowledge containers for knowledge curation.
Moreover, what I really want to know is about the value of diagrams for turning tacit knowledge into explicit knowledge. Thus, I set this goal as the present objective of the D as Diagramming research project.
This article shares the work of the Diagramming as Thinking Sprint. In past weeks, I was running the sprint with the following three steps:
Draw diagrams on index cards.
Design diagrams with softwares.
Write short notes about these diagrams on Linkedin or Twitter.
On Aug 10, I did a sprint too. You can see the original tweet thread here.
This article offers more details and references for this work. This step is not part of the Diagramming as Thinking Sprint because the sprint means writing/drawing something quickly in order to capture your intuitive inspirations as soon as possible. The sprint is the beginning of turning tacit knowledge into explicit knowledge.
This article divides into three parts:
Part 1 is the archive of the original tweets.
Part 2 offers some notes for expanding the tweets.
Part 3 moves to discuss Diagramming as Thinking.
Part 1: The Archive
You can find the original tweet thread here. The below part only shows original texts and diagrams.
1. Yesterday I designed a new framework: the Organization-for-Opportunity framework.
2. I used the following three resources for this work:
2A. Three concepts from the Ecological Practice Approach (my own work)
2B. Robert W. Keidel’s book Seeing Organizational Patterns.
2C. A diagram from the Platform-for-Development framework (v1.0).
It’s a diagram blending!
3. First diagram highlights three concepts from Ecological Practice approach:
3A — Affordance: the opportunity offered by physical environment
3B — Supportance: the opportunity offered by social environment
3C — Curativity: the opportunity of turning pieces into a whole
4. Second diagram highlights three variables of organization:
4A — Individual Autonomy
4B — Hierarchical Control
4C — Spontaneous Cooperation
This is adopted from Robere W. Keidel’s book Seeing Organizational Patterns (1995).
5. The meta-diagram comes from the Platform-for-Development framework (v1.0).
I renamed the framework as Developmental Project Model. I used its diagram as a meta-diagram for blending two triangles together.
6. The original Platform-for-Development framework (v1.0) is formed by two triangles.
6.1 three dimensions of developmental resources
6.2 project as situational context
7. three dimensions of developmental resources are Social, Action, and Content.
This is inspired by Knud Illeris’ How We Learn: Learning and Non-Learning in School and Beyond (2007).
8. Project as Situational Context This is originally named as 5A framework.
It is inspired by:
8A. Derek Layder’s Social Domains Theory.
8B. Andy Blunden’s idea “project as a unit of activity”.
9. Five Analysis Modules The original Platform-for-Development framework offers five analysis modules:
9A: Developmental Resources Analysis
9B: Situational Context Analysis
9C: Cultural Projection Analysis
9D: Social Engagement Analysis
9E: Activity Landscape Analysis
10. Five Modules for the Meta-Diagram
10A: First Triangle
10B: Second Triangle
10C: Theme Blending (Each Triangle has a center theme)
10D: Element Engagement (Each element leads to a positive or negative experience)
10E: Network Analysis (The whole diagram connects to others)
Part 2: The Notes
The Organization-for-Opportunity framework connects my work the Ecological Practice Approach and Organizational Theories through a diagram blending work.
The Ecological Practice Approach is inspired by Ecological Psychology. The three key concepts of the approach are Affordance, Supportance, and Curativity. Both these three concepts are about opportunities offered by environments.
You can find details about the historical development of the approach here.
I have worked on the approach for three years, but so far it only talks about the relationship between Person and Environment. Though I have moved from detecting opportunities to obtaining opportunities, I have not discussed such things from the collective perspective.
Three weeks ago, I shared the diagram below on Linkedin. The diagram uses three keywords to connect practice and theory: Opportunity, Objective, and Outcome. This diagram is part of my recent project Career Curation which aims to apply Curativity Theory to discuss Career Development and Personal Innovation. You can find more details on the original post on Linkedin.
The above diagram highlights three theoretical accounts:
The Ecological Practice Approach
Project-oriented Activity Theory
The Epistemology of Domain
The Organization-for-Opportunity framework echoes the direction of the Career Curation project. It’s clear that I am working on a new path. While the diagram of “Lifeworld of Career” highlights three keywords: Opportunity, Objective, and Outcome, the Organization-for-Opportunity framework adds a new element: Organization.
I have mentioned that I am collecting examples of diagrams for the D as Diagramming Archive. For example, I bought two books last week. One book is about using Triangle diagrams to discuss organizational design while the other one book is about the 2x2 Matrix diagram for business thinking.
I was inspired by Robert W. Keidel’s book Seeing Organizational Patterns. According to Robert W. Keidel, “Here are more than 200 triads — taken primarily from Western academic and popular management and organizational literature (and secondarily from writings on cognition and physical design) — that parallel autonomy/control/cooperation.”
Robert Keidel did a great work of knowledge curation for understanding organizational design. He explains that most organizational issues are a balance of three variables: Individual autonomy, Hierarchical Control, and Spontaneous Cooperation.
Robert Keidel collected 57 metaphors about organization from organizational theorists and he found that emergent organizational patterns cluster along an axis between two variables: Cooperation and Autonomy, and away from hierarchical control.
In the last paragraph of the book, Robert Keidel mentioned a special resource, “I should also note a parallel with the Tavistock Anthology, The Social Engagement of Social Science, edited by Trist and Murray (1990; 1993; forthcoming;): Volumes 1, 2, and 3 are subtitled, respectively: the social-psychological (autonomy), socio-technical (control), and socio-ecological (cooperation) perspectives.” (1995, p.151)
Robert Keidel’s organizational triangle inspired me to create the Organization-for-Opportunity framework which connects the Ecological Practice Approach with Organizational Theories.
The Platform-for-Development framework (v1.0) offers a meta-diagram for this work. You can find details about the framework here.
Part 3: The Discussion
The original tweets are just a list of items. Each item links to my tacit knowledge or my explicit knowledge.
What’s my explicit knowledge behind the tweets?
The Ecological Practice Approach
The Platform-for-Development Framework (v1.0)
I have written many articles about these two works including theoretical concepts, diagrams, sub-frameworks, canvas, and case studies. These works are my explicit knowledge.
How about my tacit knowledge behind the tweets? The idea of tacit knowledge was coined by Michael Polanyi in his 1958 book Personal Knowledge. It’s hard to give an accurate operational definition for the concept. I just roughly use it for this discussion.
I think I can claim the following items as my tacit knowledge in this case:
I knew there is a connection between Robert W. Keidel’s book Seeing Organizational Patterns and my work the Ecological Practice Approach.
I knew it’s possible to generate a meta-diagram from the Platform-for-Development Framework (v1.0)
I knew it’s possible to visualize the connection by adopting the meta-diagram.
Thus, the sprint meants put these tacit knowledge into reality. The outcome offers two things for further development.
The Organization-for-Opportunity Framework (v1.0)
The X-for-Y meta-diagram
Is it a diagram blending?
Yes! If we consider the triangle diagram as a meta-diagram, then the X-for-Y meta-diagram is formed by two triangles. If a diagram is formed by two or more diagrams, then I claim that the process of creating the diagram is diagram blending.
Why do we need the X-for-Y diagram if we can use two triangles? Because there is something emergentes from the process of forming a whole. For example, the Organization-for-Opportunity Framework is a new diagram. It can be understood from the following parts which are generated by the process. Each line connects two or three concepts together and offers a new creative trigger for thinking and discussion.
Emergent Parts
We can also discover six emergent triangular zones from the whole. Each small triangle connects three concepts together and offers a new space as a creative trigger. We can discover deep themes within each triangular zone.
The Organization-for-Opportunity framework is a heuristic tool for practical work. It offers a set of ways to connect concepts together in order to inspirate open thinking and discussing.